home *** CD-ROM | disk | FTP | other *** search
/ Amiga Games: Greatest Hits 1996 / Amiga Games: Greatest Hits 1996.iso / spiele / demoversionen / doopsi / docs / doopsi_ita.guide < prev   
Encoding:
Text File  |  1996-07-02  |  108.1 KB  |  2,661 lines

  1. *************
  2. Introduzione.
  3. *************
  4.  
  5. Il nome del gioco.
  6.  
  7. Doopsi-GS significa:  Dinamical Object Oriented Programming System
  8. Interface - Game System.  Abbiamo dato questo nome al nostro programma per
  9. vari motivi:  ci ricorda Boopsi, ovvero l'interfaccia Intuition Orientata
  10. agli Oggetti del nostro beneamato Amiga; è un programma Orientato agli
  11. Oggetti nel senso tecnico del termine, cioè per quanto riguarda la sua
  12. struttra interna (qualche notizia di questa struttura è riportata nell'
  13. Appendice C); è un'Interfaccia di Programmazione poiché semplifica il
  14. compito di programmazione rendendolo completamente automatico e veloce.
  15.  
  16.  
  17. Questo Sistema di Programmazione è molto diverso dagli altri prodotti
  18. dedicati al medesimo scopo poiché è estemamente semplice da usare, anche
  19. per coloro che avessero poca abilità di programmazione:  l'utente disegna
  20. tutta la grafica e fornisce tutti i suoni e le musiche di cui necessita e
  21. poi il nostro programma mette tutto assieme.  L'idea che giace sotto il
  22. funzionamento di questo programma è immediata:  voi definite prima di tutto
  23. le scene, poi ponete alcuni oggetti in esse e, infine, specificate come
  24. ciascun oggetto deve reagire quando il giocatore agisce su di esso (questa
  25. è l'unica parte di programmazione che dovete affrontare).  Per essere
  26. sincero vi sono altre parti del lavoro che non ho incluso nella descrizione
  27. precedente, ma le imparerete man mano che verrete maggiormente coinvolti in
  28. Doopsi:  per esempio, uno dei compiti che dovrete affrontare è quello di
  29. costruire il percorso lungo il quale l'Omino cammina (l'Omino con la
  30. maiuscola è il protagonista dell'avventura), oppure un'altro compito è
  31. quello di scrivere i dialoghi fra l'Omino e qualche altro oggetto, e così
  32. via.
  33.  
  34.  
  35. Queste sono alcune caratteristiche di Doopsi:
  36.  
  37. - sensibile al sistema operativo (funziona sotto V37+).
  38.  
  39. - completamente localizzabile (usa la nostra "locator.library" per cambiare
  40.     linguaggio, ma nelle future versioni lo adatteremo alla standard
  41.     "locale.library" se riusciremo a farla funzionare sotto V37).
  42.  
  43. - compatibile AGA.
  44.  
  45. - l'Editor è completamente system friendly.
  46.  
  47. - gestisce bitmap più grosse dell'area di schermo (con autoscroll).
  48.  
  49. - permette di suonare moduli e campionamenti durante il gioco.
  50.  
  51. - completamente personalizzabile (ad es.: potete anche ridisegnare la
  52.    pulsantiera del Player).
  53.  
  54.  
  55. Doopsi è costituito da due programmi indipendenti:  l'Editor ed il Player.
  56. Come i loro nomi possono suggerire, l'Editor è quello che costruisce
  57. l'avventura, mentre il Player sfrutta i dati prodotti dall'Editor per farvi
  58. giocare.  E' come se l'Editor generasse una specie di programma ed il
  59. Player fosse l'interprete di tale programma:  se si verifica un errore
  60. durante l'esecuzione il Player visualizza un messaggio di errore e, se può,
  61. continua l'elaborazione del gioco, come un qualsiasi interprete di un
  62. qualunque linguaggio farebbe (i linguaggi reali però non possono continuare
  63. dopo un errore, ma noi siamo migliori e possiamo!).
  64.  
  65.  
  66. Il manuale ha la seguente struttura:  questa sezione introduttiva è seguita
  67. dalla descrizione della procedura di installazione.  Poi iniziamo con la
  68. Finestra Principale dell'Editor Doopsi, contenente la descrizione di tutti
  69. i (numerosi) bottoni che appaiono (non vi spaventate, imparerete presto ad
  70. usarli).  Dopo la Finestra Principale vi sono tre sezioni dedicate ai tre
  71. editor relativi alla costruzione della scena:  il Path Editor, lo Spot
  72. Editor e lo Screen Attributes Editor.  Seguono le sezioni dedicate agli
  73. oggetti e che descrivono rispettivamente:  l'Object Attributes Editor, il
  74. Doopsi Coder e l'Anim Editor.  Rimangono solo due editor, e questi
  75. costituiscono il soggetto delle sezioni seguenti:  il Dialog Editor e
  76. l'Editor di Preferenze.  La parte principale del manuale è finita ma
  77. abbiamo anche tre appendici:  la prima descrive tutte le istruzioni del
  78. Linguaggio Doopsi (il Linguaggio Doopsi è usato nel Doopsi Coder per
  79. programmare gli oggetti); la seconda descrive il profilo della console
  80. inclusa nel pacchetto (la console è la parte bassa del gioco, quella con le
  81. azioni); e la terza contiene alcuni dettagli tecnici a proposito della
  82. struttura interna degli Oggetti Doopsi (questa non è necessaria ad una
  83. prima lettura, ma è inclusa per utenti più esperti (o più curiosi)).  Anche
  84. il Player abbisogna di un minimo di spiegazione, e lo descriviamo
  85. nell'ultima sezione del manuale, situata dopo tutte le appendici.  Questo è
  86. tutto, gente.
  87.  
  88.  
  89. Una osservazione:  probabilmente questo manuale è un po' caotico, nel senso
  90. che le informazioni utili sono sparpagliate ovunque e nascoste fra mucchi
  91. di rifiuti.  Questo significa che dovete essere più attenti nel leggere, in
  92. modo da non saltare alcune nozioni interessanti (e vitali).  Siamo
  93. spiacenti, ma questa è solo la prima versione e continueremo a sistemarla
  94. in modo da migliorarla.  Dunque ogni commento è gradito, e terremo anche
  95. una lista di FAQ nelle nostre pagine Web.
  96.  
  97.  
  98. ---------------------------------------------------------------------------
  99.  
  100.  
  101. ***************************************************
  102. Gli autori (la parte più interessante del manuale):
  103. ***************************************************
  104.  
  105. questa è la situazione fino al 27 - 6 - 1996 (data del primo upload):
  106.  
  107. Andrea si è appena laureato in Fisica all'Università di Milano, e sta
  108. studiando per entrare in un corso di Dottorato.
  109.  
  110. Fabio sta lavorando come capo progetto presso la DeAgostini Multimedia
  111. di Milano. Ama gli Amiga, i dolci, le ragazze, divertirsi, programmare a
  112. oggetti e DOOPSI ;)
  113.  
  114.  
  115. I nostri indirizzi sono:
  116.  
  117.       Fabio Rotondo                    Andrea Galimberti
  118.       c.so Vercelli, 9                 via Villoresi, 87
  119.       28100 Novara                     20029 Turbigo (Mi)
  120.       Italia                           Italia
  121.       E-Mail: fsoft@intercom.it
  122.  
  123.       Phone: (ITA) - (0)321 - 459676   Phone: (ITA) - (0)331 - 871009
  124.  
  125.  
  126. Le pagine Web sono:
  127.  
  128.       http://www.intercom.it/~fsoft/doopsi.html    -> DOOPSI Home Page!!!
  129.       http://www.intercom.it/~fsoft                -> Fabio Soft Home Page
  130.  
  131. DOOPSI Mailing list:
  132.  
  133.       per iscriversi mandare una mail a:
  134.  
  135.          fsoft@intercom.it
  136.  
  137.       con:
  138.  
  139.          SUBSCRIBE DOOPSI your_name@your_email.addr
  140.  
  141.       nel corpo del messaggio.
  142.  
  143.  
  144. ---------------------------------------------------------------------------
  145.  
  146.  
  147. ***************
  148. Ringraziamenti:
  149. ***************
  150.  
  151. Mik and Gio of ClassX:   per alcune utili routine. Per il loro supporto,
  152.                          per le loro idee, per essere loro.
  153.  
  154. Giorgio Fornara:     per la grandiosa grafica della Demo che non è inclusa
  155.                      in questo pacchetto, ma che apparirà il più presto
  156.                      possibile. Ha anche disegnato il logo di Doopsi che
  157.                      appare sullo schermo dell'Editor.
  158.  
  159. Andrea Rotondo:      per la grafica del Tutorial.
  160.  
  161. Stefano Clemente:    per il beta-testing.
  162.  
  163. Lele e Paolo di Intercom: per aver creato la DOOPSI - Mailing list.
  164.  
  165. Max Galimberti:      per aver controllato questo manuale.
  166.  
  167.  
  168. *******
  169. Saluti:
  170. *******
  171.  
  172. da Andrea a Laura: per avermi sopportato fino ad ora.
  173.  
  174. da Fabio alla sua mamma (e anche al suo papà).
  175.  
  176.  
  177. ---------------------------------------------------------------------------
  178.  
  179.  
  180. ********************************
  181. ACCORDO DI LICENZA PER DOOPSI-GS
  182. ********************************
  183.  
  184. I. DIRITTI E RESTRIZIONI DI QUESTA LICENZA
  185.  
  186. Fabio Rotondo e Andrea Galimberti (gli "autori") vi assicurano
  187. il diritto non-esclusivo, non-assegnabile di usare il software
  188. DOOPSI-GS incluso come eseguibile ("DOOPSI") su di un massimo di 1
  189. computer system alla volta. Non potete effettuare reverse engeneering,
  190. decompilare, o dissassemblare DOOPSI, non rispettare queste restrizioni
  191. e' espressamente proibito dalle leggi vigenti. Non potete prestare o
  192. affittare DOOPSI, o trasferire DOOPSI in altro modo e il materiale
  193. scritto che lo accompagna.
  194. Tutti i diritti non espressamente citati sono riservati dagli autori.
  195.  
  196. II. NESSUNA GARANZIA
  197.  
  198. DOOPSI e il materiale scritto che lo accompagna e' fornito "cosi' com'e'",
  199. senza alcuna garanzia di alcun tipo. Per quanto consentito dalla legge,
  200. gli autori scaricano tutte le responsabilita', sia implicite che
  201. esplicite, comprese implicite garanzie di vendibilita', utilita'
  202. per un compito particolare e di non violazione. Gli interi rischi
  203. derivanti dall'uso o dal comportamento di DOOPSI e del materiale
  204. scritto che l'accompagna rimangono a voi.
  205.  
  206. III. NESSUN OBBLIGO PER DANNI CONSEGUENTI L'USO
  207.  
  208. Per quanto consentito dalla legge: in alcun caso gli autori o i
  209. loro collaboratori potranno essere accusati per qualsiasi danno
  210. (compresi, senza limitazione, danni per profitti di affari,
  211. interruzione degli affari, perdita di dati commerciali, o qualsiasi
  212. possibilita' di perdita monetaria) derivante dall'uso o dalla
  213. inadeguatezza di usare DOOPSI, persino se gli autori sono stati
  214. avvisati della possibilita' di tali danni. Dal momento che
  215. alcuni stati/giurisdizioni non permettono l'esclusione o la limitazione
  216. di garanzia per danni consequenziali o incidentali, questa limitazione
  217. potrebbe non riguardarvi.
  218.  
  219. IV. COPIA E DISTRIBUZIONE
  220.  
  221. Siete autorizzati a distribuire e copiare questo documento con
  222. tutto il resto dell'archivio, solo se il programma e' una versione
  223. "SHAREWARE" o "SPECIAL EDITION". La "SPECIAL EDITION" non puo' essere
  224. distribuita su Aminet o in qualsiasi BBS e non puo' comparire in
  225. alcuna rivista senza il permesso scritto degli autori.
  226. Voi potete, e siete invitati a farlo, copiare e distribuire la versione
  227. originale di DOOPSI SHAREWARE VERSION, ma NON DOVETE COPIARE in qualsiasi
  228. forma la DOOPSI REGISTERED VERSION (versione registrata), eccezion fatta
  229. per l'utilizzo personale.
  230.  
  231. V. VARIE
  232.  
  233. Se avete acquistato questo prodotto negli Stati Uniti, questo Accordo e'
  234. soggetto alle leggi dello Stato di Washington. Se avete acquistato
  235. questo prodotto fuori dagli Stati Uniti, verranno applicate le leggi
  236. locali. Se una qualsiasi parte esterna si arroca dei diritti derivanti
  237. dal presente Accordo, la parte prevalente potrebbe essere autorizzata a
  238. richiedere somme di denaro per il risarcimento per l'offesa, i costi e le
  239. spese.
  240.  
  241.  
  242. ---------------------------------------------------------------------------
  243.  
  244.  
  245. **************
  246. Installazione.
  247. **************
  248.  
  249. Vi è uno script per l'Installer che svolge questo compito, ma per coloro
  250. che desiderassero farlo a mano descriveremo cosa deve essere installato e
  251. dove.  (A proposito:  per usare lo script dovete possedere l'Installer e
  252. l'utility Lha.)
  253.  
  254.  
  255. I tre archivi hanno già la struttura finale delle directory.  Dovete prima
  256. estrarre l'archivio Programs.lha; quest'ultimo crea due directory:  una
  257. contiene l'Editor e l'altra contiene il Player.  Vi è anche una terza
  258. directory in cui potete trovare due librerie:  la "locator.library" e la
  259. famosa "reqtools.library"; dovete copiare queste librerie nella vostra
  260. directory Libs:.  L'ultimo passo consiste nel fare la seguente
  261. assegnazione:  Assign Doopsi: alla directory dell'Editor.
  262.  
  263. La lingua di default è l'inglese, ma sono forniti anche i cataloghi per
  264. installare l'italiano:  dovete solo estrarre l'archivio Catalogs.lha nella
  265. stessa directory dove avete messo il cassetto dell'Editor (non NEL cassetto
  266. dell'Editor, ma VICINO a tale cassetto).  Questo crea una directory
  267. Catalogs nel cassetto dell'Editor ed aggiunge anche il file
  268. "player.catalog" nella directory "Editor/Data".
  269.  
  270. Poi dovete estrarre l'archivio Tutorial.lha nella stessa directory dove
  271. avete messo il cassetto dell'Editor (non NEL cassetto dell'Editor, ma
  272. VICINO a tale cassetto):  questo crea una directory Tutorial nel cassetto
  273. dell'Editor, dove potete trovare un po' di grafica per iniziare
  274. immediatamente.
  275.  
  276. Per riassumere:  gli archivi son stati costruiti in modo tale che, se li
  277. estraete tutti nella medesima directory, il loro contenuto finirà nei posti
  278. giusti.
  279.  
  280. La struttura risultante delle directory è:
  281.  
  282.       Editor
  283.       |
  284.       +---Catalogs
  285.       |
  286.       +---Docs
  287.       |
  288.       +---palettes
  289.       |
  290.       +---Data
  291.       |
  292.       `---Tutorial
  293.           |
  294.           +---Objects
  295.           |
  296.           +---Berny
  297.           |
  298.           +---Scenes
  299.           |
  300.           `---Sounds
  301.     
  302.       Player
  303.  
  304.  
  305. L'Editor Deve trovare nella propria directory il file "doopsi.dat".  La
  306. directory Catalogs serve solo se volete usare un linguaggio diverso
  307. dall'inglese (per il momento sono forniti solo i cataloghi italiani):
  308. copiate in tale cassetto solo i cataloghi del vostro linguaggio preferito e
  309. lasciate fuori gli altri.
  310.  
  311. Il Player Deve trovare nella directory che scegliete mediante l'Editor (si
  312. veda la sezione di questo manuale dedicata alla finestra di Preferenze) i
  313. seguenti file:  "player.dat" e "panel.iff".  Il file "panel.iff" è la
  314. console che potete cambiare (vedere l'Appendice B).  Il file
  315. "player.catalog" è necessario solo se volete usare un linguaggio diverso
  316. dall'inglese, altrimenti potete buttarlo via.
  317.  
  318. I sorgenti dei cataloghi verranno forniti (se si desidera), insieme agli
  319. eseguibili per crearli, in un pacchetto a parte.
  320.  
  321.  
  322. NOTA IMPORTANTE:  L'Editor ha bisogno dell'assegnamento Doopsi:, ma il
  323. Player è stato costruito in modo da essere completamente rilocabile (non
  324. necessita di assegnamenti).  Quando caricate il Player da una Shell dovete
  325. semplicemente far diventare la directory del Player quella corrente e poi
  326. chiamare il programma:  il Player cercherà quindi la directory che avete
  327. selezionato mediante l'Editor (quella di default è la directory "Data"
  328. creata dagli archivi), dove Deve trovare i file "player.dat" e "panel.iff".
  329.  
  330. La linea di comando per caricare il Player è:  Player nome_file_Doopsi.  Se
  331. dimenticate di fornire il nome del file, il Player apre un file requester e
  332. vi chiede di selezionare un file.
  333.  
  334.  
  335. ---------------------------------------------------------------------------
  336.  
  337.  
  338. ***********************
  339. La finestra principale.
  340. ***********************
  341.  
  342. La storia inizia da qui.
  343.  
  344. Prima di tutto, descriviamo i contenuti della finestra.  La parte più alta
  345. è divisa in due sezioni:  quella di sinistra riguarda le scene, mentre
  346. quella di destra è dedicata agli oggetti.  Poi segue una riga contenente
  347. alcuni editor misti e, infine, la riga finale contiene dei gadget dedicati
  348. al caricamento e salvataggio di tutto il vostro lavoro.
  349.  
  350.  
  351. Iniziamo con la sezione delle scene.  Per creare una nuova scena dovete
  352. premere il bottone "Nuovo" e, dopo aver selezionato l'immagine di sfondo
  353. mediante il file requester, vi si chiede di inserire il nome della scena:
  354. questo nome è l'identificatore che Doopsi usa per indirizzare la scena,
  355. quindi siete invitati a non chiamare due scene con il medesimo nome.  Dopo
  356. che lo sfondo è stato visualizzato siete pronti per lavorare su questa
  357. scena (per es.:  posizionando degli oggetti su di essa).  Per selezionare
  358. la scena su cui lavorare dovete usare il gadget "Lista":  cliccate sul nome
  359. desiderato nella lista e poi sul bottone "Ok".  Il gadget "Uccidi" serve
  360. per rimuovere la scena corrente.
  361.  
  362. Quando premete il bottone "Salva" l'editor vi chiede se volete salvare solo
  363. la scena corrente o tutte le scene create fino ad ora.  Con il gadget
  364. "Carica" potete caricare entrambi i tipi di file:  l'Editor riconosce
  365. automaticamente se il file che avete selezionato contiene una o più scene.
  366. Se gli oggetti agganciati alla scena che volete caricare sono già stati
  367. caricati, allora l'editor può posizionarli immediatamente sulla scena
  368. stessa; se invece caricate gli oggetti dopo che la scena è stata caricata,
  369. allora dovete posizionare tali oggetti a mano, cliccando sul gadget "R"
  370. ("R" sta per "ripristina").  Il gadget "Carica" può anche estrarre le
  371. informazioni delle scene da un file salvato con il gadget "Salva Tutto"
  372. posizionato nella fila inferiore della finestra (vedi la descrizione di
  373. tale gadget per informazioni maggiori).
  374.  
  375. I gadget rimanenti aprono altri editor, e si rimanda alle sezioni del
  376. manuale dedicate a tali editor per informazioni più specifiche.  Il gadget
  377. "Attrs" serve per attivare l'editor degli Attributi delle Scene, dove
  378. potete cambiare alcune caratteristiche della vostra scena; il bottone "Spot
  379. editor" invoca lo Spot Editor per posizionare alcuni Spot sulla scena; il
  380. gadget "Path editor" accede al Path Editor usato per creare il percorso su
  381. cui il vostro Omino dovrebbe camminare.
  382.  
  383.  
  384. Ora sapete come creare una nuova scena e siete pronti per posizionarvi
  385. degli oggetti, quindi diamo uno sguardo alla sezione degli oggetti.  Il
  386. gadget "Nuovo" crea un nuovo oggetto ed apre l'editor degli Attributi degli
  387. Oggetti per permettere all'utente di modificare tale oggetto (si veda la
  388. sezione dedicata all'editor degli Attributi per gli Oggetti).  Il gadget
  389. "Lista" visualizza la lista di tutti gli oggetti creati fino ad ora:  per
  390. lavorare su un oggetto dovete renderlo l'oggetto corrente selezionando il
  391. suo nome dalla lista.  Il bottone "Uccidi" rimuove l'oggetto corrente.
  392.  
  393. Il gadget "Salva" chiede se volete salvare solo l'oggetto corrente o tutti
  394. gli oggetti creati.  Il bottone "Carica" riconosce se il file che avete
  395. selezionato contiene uno o più oggetti e gli aggiunge alla lista.  Questo
  396. bottone può anche estrarre i dati degli oggetti da un file salvato con il
  397. gadget "Salva Tutto".
  398.  
  399. Il gadget "Attrib" apre l'editor degli Attributi degli Oggetti (quello a
  400. cui accedete automaticamente quando create un nuovo oggetto); il bottone
  401. "Doopsi code" invoca il Doopsi Coder utilizzato per specificare come si
  402. deve comportare il Player quando l'utente agisce su un oggetto; il gadget
  403. "Anim editor" apre l'Anim Editor che vi permette di convertire un oggetto
  404. in un AnimObject costruendo un'animazione a partire dalle sue immagini.
  405.  
  406. Potete muovere tutti gli oggetti che avete creato e posizionato sulla scena
  407. (utilizzando l'Object Attributes editor) cliccando su di essi con il
  408. bottone sinistro del mouse e (tenendo premuto questo bottone) trascinandoli
  409. all'interno della scena. Cliccando su di essi con il bottone destro del
  410. mouse rendete oggetto corrente l'oggetto selezionato ed invocate l'Object
  411. Attributes editor.
  412.  
  413.  
  414. La sezione successiva contiene tre bottoni:  il bottone "Prefs" accede
  415. all'editor delle Preferenze dove potete modificare ad esempio alcuni nomi
  416. che il Player usa come default, o i vostri path preferiti, e così via; il
  417. "Dialog Editor" invoca il Dialog Editor utilizzato per creare dialoghi fra
  418. il vostro Omino e un altro personaggio della vostra storia; il gadget
  419. "Info" vi dice quanti oggetti e scene avete creato fino ad ora e la
  420. quantità di memoria disponibile.  Infine il bottone "Prova Gioco" invoca il
  421. Player affinché possiate provare immediatamente la vostra avventura:
  422. l'Editor cerca il Player nella directory indicatagli mediante l'apposito
  423. campo situato nella finestra delle Preferenze.
  424.  
  425.  
  426. Ora descriviamo l'ultima riga.  Il gadget "Salva Tutto" serve per salvare
  427. tutta l'avventura:  il file contiene scene, oggetti, percorsi, spot,
  428. dialoghi e preferenze, ovvero tutto quello di cui abbisogna il Player per
  429. iniziare il gioco.  Il bottone "Salva Finale" differisce dal gadget "Salva
  430. Tutto" poiché il file salvato verrà crittato:  l'Editor vi chiede la chiave
  431. utilizzata per crittare il file.  Abbiamo aggiunto questa opzione poiché in
  432. questo modo altre persone non possano guardare nel file Doopsi per vedere
  433. come avete costruito la vostra avventura, ma possano comunque giocarci
  434. senza bisogno di conoscere la chiave.  Il gadget "Carica Tutto" vi permette
  435. di caricare un file salvato con il gadget "Salva Tutto" o "Salva Finale",
  436. se volete modificarlo ulteriormente (se il file è crittato dovete conoscere
  437. la chiave per decrittarlo prima di caricare i dati contenuti).  Il bottone
  438. "Cancella Tutto" serve per cancellare tutto il vostro precedente lavoro e
  439. ricominciare da capo.  Il bottone "Info su Doopsi" visualizza un piccolo
  440. messaggio che dovreste leggere.
  441.  
  442.  
  443.  
  444. I gadget.
  445.  
  446. Sezione delle scene:
  447.  
  448. Nuovo             Crea una nuova scena: vi si chiede di selezionare
  449.                   l'immagine di sfondo e di scrivere il nome della scena.
  450.  
  451. Carica            Carica un file contenente una o più scene.
  452.  
  453. Salva             Salva un file contenente dati per le scene: vi si chiede
  454.                   se volete salvare solo la scena corrente o tutte le scene
  455.                   create fino ad ora.
  456.  
  457. Lista             Lista tutte le scene create e vi permette di muovervi fra
  458.                   le scene selezionando quella corrente.
  459.  
  460. Uccidi            Cancella la scena corrente.
  461.  
  462. Attrs             Apre lo Scene Attributes editor.
  463.  
  464. Spot editor       Invoca lo Spot editor.
  465.  
  466. Path editor       Accede al Path editor.
  467.  
  468. R                 Ridisegna lo schermo.
  469.  
  470.  
  471. Sezione degli oggetti:
  472.  
  473. Nuovo             Crea un nuovo oggetto ed apre l'Object Attributes editor
  474.                   per poterlo modificare.
  475.  
  476. Carica            Carica un file contenente uno o più oggetti.
  477.  
  478. Salva             Salva un file contenente dati per gli oggetti: vi si
  479.                   chiede se volete salvare solo l'oggetto corrente o tutti
  480.                   gli oggetti creati.
  481.  
  482. Lista             Lista tutti gli oggetti: potete muovervi fra di essi
  483.                   selezionando quello corrente.
  484.  
  485. Uccidi            Cancella l'oggetto corrente.
  486.  
  487. Attrib            Apre l'Object Attributes editor.
  488.  
  489. Doopsi code       Invoca il Doopsi Coder.
  490.  
  491. Anim editor       Accede all'Anim editor.
  492.  
  493.  
  494. Altri gadget:
  495.  
  496. Prefs             Apre l'editor delle Preferenze.
  497.  
  498. Dialog editor     Accede al Dialog editor.
  499.  
  500. Prova Gioco       Invoca il Player.
  501.  
  502. Info Progetto     Visualizza alcune informazioni sul vostro lavoro.
  503.  
  504. Carica Tutto      Carica un file contenente tutti i dati del gioco (se il
  505.                   file è crittato vi viene chiesta la chiave per
  506.                   decrittarlo).
  507.  
  508. Salva Tutto       Salva un file contenente tutti i dati del gioco, cioè il
  509.                   file utilizzato dal Player.
  510.  
  511. Salva Finale      Salva un file crittato contenente tutti i dati del gioco:
  512.                   l'Editor vi chiede la chiave per crittare il file.
  513.  
  514. Canc. Tutto       Elimina tutto il vostro precedente lavoro.
  515.  
  516. Info su Doopsi    Alcune note a proposito di noi e di Doopsi.
  517.  
  518.  
  519. ---------------------------------------------------------------------------
  520.  
  521.  
  522. ********************************************
  523. Alcune note su come il Player trova l'Omino.
  524. ********************************************
  525.  
  526. Questo problema sorge in quanto l'Omino è un AnimObject (in realtà quattro
  527. oggetti:  uno per ogni direzione) come tutti gli altri AnimObject che
  528. potete agganciare al vostro gioco.  Quindi il Player deve sapere quali
  529. oggetti rappresentano il protagonista della storia.  Il nome interno
  530. dell'Omino è composto da una radice (quella di default è "Omino") ed una
  531. estensione che indica la direzione (ad es.:  A per alto, G per giù, ecc.):
  532. quindi l'AnimObject contenente l'animazione che rappresenta l'Omino che
  533. cammina verso destra potrebbe essere chiamata (sempre nome interno!)
  534. "OminoD", e così via.  Avete bisogno anche di altri quattro AnimObject
  535. rappresentanti l'Omino che parla nelle quattro direzioni:  il nome di tali
  536. AnimObject è costruito a partire dalla radice, aggiungendo ad essa una
  537. prima estensione (quella di default è "Parla") e la seconda estensione è la
  538. direzione, come prima.  Quindi un nome tipico per l'AnimObject
  539. rappresentante l'Omino che parla verso sinistra è "OminoParlaS".
  540.  
  541. Potete scegliere la radice e le estensioni che preferite scrivendole
  542. nell'editor delle preferenze.
  543.  
  544. Un'ultima nota a proposito di estensioni.  Il Doopsi Coder contiene
  545. istruzioni utilizzate per muovere (e/o animare) oggetti sulla scena durante
  546. il gioco:  vi si chiede di fornire il nome dell'AnimObject contenente
  547. l'animazione desiderata.  E qui arriva la parte interessante:  se tale nome
  548. termina con una delle quattro estensioni indicanti una direzione, allora il
  549. Player è autorizzato a scegliere la direzione che gli serve.  Fa ciò
  550. rimuovendo l'estensione e rimpiazzandola con quella indicante la direzione
  551. giusta, poi cerca un AnimObject con il nome risultante dall'operazione
  552. precedente e, se lo trova, lo usa.  Per esempio:  se il nome che avete
  553. selezionato come argomento per l'istruzione SetMoveAnim è "VolaD" e la
  554. mosca si deve muovere verso l'alto, allora il Player cerca un AnimObject
  555. chiamato "VolaA".  In altre parole:  l'estensione che voi fornite al
  556. momento della programmazione è irrilevante perché verrà rimpiazzata prima
  557. di essere utilizzata, ma essa dice al Player di stare attento alla
  558. direzione.  Per sapere quali istruzioni hanno questa opzione consultate
  559. l'Appendice A.
  560.  
  561.  
  562.  
  563. Osservazioni generali che dovreste leggere:
  564.  
  565. L'Editor produce un file contenente la struttura della vostra avventura, ma
  566. non la grafica o i suoni che avete agganciato al gioco poiché non vogliamo
  567. mescolare tutta l'avventura in un solo file enorme; quindi nel file
  568. generato vi sono solo i percorsi dei file agganciati.  Dovete ricordarvi di
  569. questo particolare se volete distribuire il vostro gioco agli amici:  per
  570. esempio, potete far diventare relativi i percorsi utilizzando
  571. un'assegnamento.
  572.  
  573.  
  574. ---------------------------------------------------------------------------
  575.  
  576.  
  577. ************
  578. Path Editor.
  579. ************
  580.  
  581. Introduzione.
  582.  
  583. Il Path Editor si occupa di aiutare il creatore dell'avventura a sviluppare
  584. i percorsi nei quali si muoveranno i vari personaggi.  La creazione dei
  585. percorsi è forse una delle cose più complesse e richiede una certa
  586. attenzione.  A ben vedere, il percorso che verrà creato su di una scena
  587. vincolerà i movimenti dei personaggi durante il gioco.  Questo deve
  588. necessariamente portare ad una pianificazione ponderata per la creazione
  589. del percorso.
  590.  
  591.  
  592. Teoria dei path.
  593.  
  594. Il percoso, o path, è strutturato in nodi, delle unità di sosta.  Ogni nodo
  595. può avere delle caratteristiche particolari che permettono un maggiore
  596. controllo del movimento del personaggio sulla scena.  Di queste
  597. caratteristiche parleremo più avanti.  Ogni nodo ha dei "rami" (branch) al
  598. massimo sette per ogni nodo, che permettono di collegarsi ad altri nodi.
  599.  
  600. Il path determina, attraverso i nodi, la possibilità di movimento del
  601. personaggio sulla scena.  Un percorso è quindi formato da nodi, uniti tra
  602. loro da collegamenti (branch), in modo da formare una specie di "rete".  I
  603. movimenti del personaggio dell'avventura sulla scena avverrà appunto su
  604. questa rete, come se i nodi con le loro diramazioni fossero una specie di
  605. "binario invisibile" sul quale il personaggio si muove.  Non è possibile,
  606. in alcun modo, muovere il personaggio in zone della scena non raggiungibili
  607. da un nodo.  Se si chiede al personaggio di muoversi in un luogo esterno
  608. alla diramazione del percorso, verrà raggiunto il punto ritenuto più vicino
  609. a quello richiesto, ma non si andrà oltre.  Questo aspetto dei path può
  610. sembrare una limitazione, ma è in realtà una delle caratteristiche che
  611. assicurano una grandissima flessibilità a livello di game-design:  per
  612. esempio, è possibile creare una scena che racchiude più percorsi e
  613. "vietare" l'accesso a certe aree a meno che non si siano verificate
  614. determinate condizioni.
  615.  
  616. Con un po' di pratica, riuscirete sicuramente a creare dei percorsi
  617. complessi ed articolati.  Il Path Editor vi assisterà costantemente e con
  618. affidabilità in questo compito.  Buon lavoro.
  619.  
  620.  
  621. NOTA:  I seguenti tutorial presuppongono che voi conosciate già altre
  622. caratteristiche proprie di Doopsi, quali la creazione di nuove scene, la
  623. creazione di animazioni tramite AnimWorkshop e la gestione degli oggetti
  624. tramite l'editor di Attributi dell'Oggetto.
  625.  
  626. Tutorial 1 - Un Semplice Percorso
  627.  
  628. In questo tutorial impareremo a disegnare un piccolo percorso di quattro
  629. nodi e ad unire questi nodi tra loro con delle semplici diramazioni.  Scopo
  630. di questo tutorial è di impratichirvi con i comandi di base del Path
  631. Editor.  Imparerete ad aggiungere e cancellare nodi, ad aggiungere
  632. collegamenti e a forzare il ridisegnamento di tutta la scena (necessario in
  633. alcuni casi).  Nel prossimo tutorial costruiremo qualcosa di più complesso.
  634. Eseguite questa esercitazione anche più volte, fino a quando non sarete
  635. certi di avere completa padronanza dei comandi.
  636.  
  637. Per eseguire questo tutorial dovrete aver creato prima una scena con
  638. l'immagine "tutorial_room1".
  639.  
  640. Premete Path Editor nel pannello principale di Doopsi.
  641.  
  642. Non fatevi spaventare dal numero di pulsanti che ci sono, col tempo ne
  643. avrete piena padronanza.
  644.  
  645. Prima di tutto, è consigliabile sistemare tutti i nodi che si desiderano
  646. sullo schermo.  Naturalmente è possibile aggiungerne anche in seguito, ma
  647. in questo modo sarete certi di coprire almeno tutti i punti importanti.
  648.  
  649. Per aggiungere un nodo sulla scena è sufficiente eseguire questi passaggi:
  650.  
  651.    - Premete "Agg. Nodi"
  652.      Da questo momento in poi, fino a quando non decideremo di smettere, 
  653.      ogni click del mouse sulla scena darà origine alla creazione dei nodi.
  654.  
  655.    - Create quattro nodi in modo che formino una specie di quadrato.
  656.  
  657.    - Premete "Agg. Coll." per aggiungere i collegamenti.
  658.      Da questo momento in poi, fino a quando non decideremo interrompere
  659.      l'operazione, potremo aggiungere collegamenti tra i nodi.
  660.  
  661.    - Premete sul primo nodo (il nodo cambierà di colore)
  662.    - Premete sul secondo nodo (il nodo cambierà di colore e una linea unirà
  663.      i due nodi)
  664.      
  665.    Abbiamo appena creato il primo collegamento.  Per creare il secondo,
  666.    procediamo in questo ordine:
  667.  
  668.    - Premete sul secondo nodo (il nodo cambierà colore)
  669.    - Premete sul terzo nodo (il nodo cambierà colore e una linea unirà i
  670.      due nodi)
  671.  
  672.    Proseguite in questo modo fino a quando non avrete creato un vero
  673.    "quadrato".
  674.  
  675. Adesso che avete creato questi nodi, potete testare lo spostamento che
  676. effettuerà il personaggio durante l'avventura:
  677.  
  678.    - premete il bottone "Prova Movim." e selezionate il nodo di partenza
  679.      (per esempio il primo).  Il nodo si illuminerà.
  680.  
  681.    - Selezionate il secondo nodo (ad esempio il terzo).  Il nodo si
  682.      illuminerà.
  683.       
  684. Il programma cercherà di calcolare un percorso tra i due nodi selezionati e
  685. lo visualizzerà, passo passo, illuminando i nodi.  Se avete selezionato il
  686. primo ed il terzo e li avete collegati come descritto nel nostro esempio,
  687. dovreste vedere illuminarsi i nodi uno, due e tre.  Naturalmente questo è
  688. un esempio semplice, ma la possibilità di provare il path si rivela molto
  689. utile in scene complesse.
  690.  
  691. Adesso create un nuovo nodo dove volete e collegategli altri nodi, seguendo
  692. i procedimenti appena descritti.  Riprovate ad utilizzare "Prova Movim.".
  693.  
  694. Prima di terminare il tutorial, proviamo a rimuovere un nodo dalla scena:
  695.  
  696.    - Premete "Uccidi Nodo"
  697.    - Selezionate il nodo che intendete cancellare.
  698.    - Il nodo verrà cancellato.
  699.  
  700. A questo punto, è possibile che della grafica sulla scena sia rovinata e
  701. che il nodo appena cancellato compaia ancora.  Questo non è un errore di
  702. Doopsi, ma è necessario eseguire un aggiornamento della grafica (refresh).
  703. Premete "Aggiorna" per aggiornare la grafica, vedrete che adesso il nodo
  704. cancellato non comaprirà più.
  705.  
  706.  
  707. Tutorial 2 - La programmazione dei nodi
  708.  
  709. I percorsi sono strumenti potentissimi.  Per utilizzarli al meglio è
  710. necessario provare e riprovare.  Quello che cercheremo di spiegarvi adesso
  711. è la "programmazione" di un nodo.
  712.  
  713. Un nodo puo' essere programmato per le seguenti attività:
  714.  
  715.    - Modificare l'animazione del personaggio
  716.    - Modificare la priorità uomo/oggetti
  717.    - Determinare il cambio di scena
  718.    - Controllare se un nodo è percorribile (controllo di condizione)
  719.  
  720. Tutte queste operazioni sono complesse da realizzare e richiedono uno
  721. strudio accurato della generazione del percorso.
  722.  
  723. Vediamo adesso come è possibile programmare un nodo e quali sono le
  724. condizioni da tenere in considerazione nella progettazione di un percorso.
  725.  
  726. Per programmare un nodo, è sufficiente premere il bottone "Codice" nel Path
  727. Editor e poi selezionare il nodo che si intende modificare.
  728.  
  729.    - Modificare l'animazione del personaggio
  730.  
  731.      Premere il bottone "Setta Anim.", apparirà un Lister con tutti gli
  732.      oggetti (animati e non) presenti nell'avventura. Selezionate quello
  733.      che vi riguarda (Deve essere un AnimObject).
  734.  
  735.    - Modificare la priorità uomo/oggetti
  736.  
  737.      Premete il bottone "Cambia Pri", verranno alternate le scritte "Uomo
  738.      Su Oggetti" o "Oggetti Su Uomo".
  739.  
  740.    - Determinare il cambio di scena
  741.     
  742.      Premere su "Set Start", apparirà un Lister contenente tutte le scene
  743.      create. Selezionate quella nella quale desiderate spostarvi quando il
  744.      personaggio passerà sopra al nodo.
  745.  
  746.    - Controllare se un nodo è percorribile (controllo di condizione)
  747.  
  748.      Premete "Set Condizione", apparirà un Lister con tutti i nomi degli
  749.      oggetti presenti nell'avventura. Selezionato l'oggetto, comparirà
  750.      uno status requester per determinare la condizione che andrà
  751.      controllata su quel determinato nodo.
  752.  
  753.     
  754.  
  755. Facciamo un piccolissimo esempio di utilizzo:
  756.     
  757. Immaginate di avere i seguenti nodi:
  758.  
  759.  
  760.  
  761.     1 ---- 2 ---- 3 ---- 4 ---- 5
  762.  
  763.  
  764. Noi vogliamo che il nodo 5 ci faccia saltare alla scena "Ufficio", ma solo
  765. quando l'oggetto "porta" è aperta (supponiamo che lo status sia a 1 quando
  766. la pora è aperta).  Dobbiamo fare in modo che il protagonista NON possa
  767. raggiungere il nodo n.5 se non quando la porta è aperta.
  768.  
  769. Iniziamo a programmare il nodo 5.  Premete "Codice" e poi sul nodo 5, e
  770. cliccate su "Set Start", selezionando la scena "Ufficio":  da ora in poi
  771. tutte le volte che il personaggio arriverà sul nodo n.5, passerà alla scena
  772. "Ufficio".
  773.  
  774. Ora programmate il nodo n.4:  premete "Codice" poi selezionate il nodo e
  775. cliccate su "Set Condizione".  Premete sull'oggetto "Porta" e inserite come
  776. valore di status 1.  Fatto!  Adesso, se la porta è chiusa, il nodo n.5 non
  777. sarà raggiungibile.
  778.  
  779.  
  780.  
  781. Descrizione generale.
  782.  
  783. Probabilmente questo è l'editor con più bottoni, ma questi gadget sono
  784. raccolti in gruppi.  Esamineremo un gruppo alla volta.
  785.  
  786. Il primo gruppo che mi accingo a descrivere è quello situato nell'angolo in
  787. alto a sinistra della finestra.  Il bottone "Agg.  Nodi" attiva l'aggiunta
  788. dei nodi, cioè, dopo aver premuto questo gadget potete aggiungere quanti
  789. nodi volete fino a quando siete soddisfatti:  dovete solo cliccare sulla
  790. scena nel punto dove volete un nodo.  Per uscire dall'aggiunta dei nodi
  791. dovete premere ancora il gadget "Agg.  Nodi" (o un altro gadget del
  792. medesimo gruppo).  Il bottone "Uccidi Nodo" vi chiede di selezionare il
  793. nodo da uccidere, dopo di che l'Editor lo rimuoverà dalla scena:  il nodo
  794. "morto" lascerà un quadrato nero sulla scena, così, se volete restaurare la
  795. vostra grafica, dovete premere il bottone "Aggiorna".  Il bottone
  796. "Aggiorna" ridisegna tutta la grafica contenuta nella scena corrente.  Il
  797. bottone "Agg.  Coll." serve per attivare l'aggiunta dei collegamenti:  per
  798. aggiungere un collegamento fra due nodi premete prima sul nodo iniziale e
  799. poi su quello finale.  Potete ripetere questi passaggi fino a quando non
  800. avrete finito di collegare tutti i vostri nodi; quindi premete il bottone
  801. "Agg.  Coll." ancora una volta per uscire dall'aggiunta dei collegamenti.
  802. Il gadget "Codice" vi chiede di selezionare il nodo da programmare; per
  803. terminare la sessione di programmazione premete ancora sul bottone
  804. "Codice":  l'Editor vi chiederà di selezionare un'altro nodo da
  805. programmare, ma potete cliccare nel campo del "Messaggio" per farlo
  806. smettere definitivamente.
  807.  
  808. La programmazione dei nodi ci porta direttamente al gruppo intitolato
  809. "Modifica Settaggi".  Il bottone "Setta Anim." è utilizzato per cambiare le
  810. animazioni dell'Omino quando l'Omino passa su quel nodo:  l'Editor apre un
  811. lister con tutti i nomi degli oggetti creati ed aspetta che l'utente
  812. selezioni un nome dalla lista.  A questo punto il testo "Default" alla
  813. sinistra del gadget viene rimpiazzato con il nome scelto.  Da questo nodo
  814. in poi il Player userà la radice del nome scelto come radice per costruire
  815. tutti i nomi delle animazioni dell'Omino (se questo non vi dice niente
  816. allora dovreste leggere le "Alcune note su come il Player trova l'Omino"
  817. situate appena dopo la sezione della Finestra Principale di questo
  818. manuale).  Il gadget "Cambia Pri." alterna la priorità fra "Uomo Su
  819. Oggetti" a "Oggetti Su Uomo" e viceversa:  la prima condizione significa
  820. che l'Omino apparirà davanti a tutti gli oggetti mentre cammina verso quel
  821. nodo, la seconda significa giusto il contrario (potete trovare altre note a
  822. proposito di come questo funzioni nella sezione dedicata al Player del
  823. manuale).  Il bottone "Set Start" apre un lister con i nomi di tutte le
  824. scene create fino ad ora:  il nome della scena selezionata apparirà alla
  825. sinistra del gadget nel campo "Start".  Se questo campo non è vuoto il
  826. Player, quando l'Omino calpesta quel nodo, cerca una scena avente il nome
  827. scelto; se la scena viene trovata allora il Player abbandona la scena
  828. precedente ed entra in quella nuova.  Nella nuova scena l'Omino verrà
  829. posizionato sul nodo contenente (nel campo "Start") il nome della scena da
  830. cui l'Omino proviene.  (E' come se il nodo "finale" della prima scena punti
  831. verso il nodo "iniziale" della seconda, e viceversa.)
  832.  
  833. Il prossimo gruppo è quello chiamato "Condizioni".  Il bottone "Set
  834. Condizione" permette all'utente di arrestare l'Omino se una determinata
  835. condizione non è verificata:  la condizione è del tipo "Se lo stato
  836. dell'oggetto è uguale a".  Il bottone apre un lister con i nomi degli
  837. oggetti; dopo aver selezionato un oggetto dovete inserire il valore dello
  838. stato che volete controllare.  Se il campo di Stato dell'oggetto
  839. selezionato non contiene il valore scelto quando l'Omino cammina su quel
  840. nodo, allora all'Omino non è permesso oltrepassare tale nodo.  Il gadget
  841. "Cancella Condiz." cancella i campi di condizione del nodo.
  842.  
  843. Il bottone "Prova Movim." vi permette di vedere come l'Omino camminerà sul
  844. vostro percorso:  vi si chiede di selezionare il nodo di partenza ed il
  845. nodo di arrivo; a questo punto l'Editor illuminerà i nodi su cui l'Omino
  846. passerà mentre va dal nodo iniziale a quello finale.  Il bottone "Controlla
  847. Nodi" controlla se tutti i nodi sono correttamente collegati e rimuove i
  848. nodi isolati.
  849.  
  850. Ci mancano solo tre gadget.  Il bottone "Nuovo Path" cancella completamente
  851. il path attuale.  Il gadget "Salva Path" salva il path corrente in un file,
  852. e il gadget "Carica Path" carica un file salvato con il precedente bottone.
  853.  
  854.  
  855.  
  856. Alcuni suggerimenti utili:
  857.  
  858. Premete sempre il bottone "Controlla Nodi" prima di salvare tutto il vostro
  859. lavoro, poiché in questo modo vi eviterete sgradite sorprese.
  860.  
  861. Quando posizionate i nodi non dimenticatevi delle dimensioni dell'Omino:
  862. l'hot spot dell'Omino è posizionato nell'angolo in basso a sinistra
  863. dell'immagine dell'Omino, quindi l'Omino si ferma sempre alla destra di un
  864. nodo.  Questo implica che l'Omino può raggiungere il bordo destro (o il
  865. bordo superiore) della scena prima di raggiungere il nodo di destinazione
  866. se posizionate tale nodo troppo vicino al bordo della scena:  quando
  867. l'Omino raggiunge il bordo della scena si ferma, così il vostro nodo non
  868. verrà mai raggiunto.
  869.  
  870. Quando stabilite la priorità dell'Omino sugli oggetti tenete presente le
  871. dimensioni dell'Omino:  se un nodo dice "Oggetti Su Uomo" ed il seguente
  872. dice "Uomo Su Oggetti" e l'Omino, andando dal primo al secondo nodo, è
  873. ancora parzialmente coperto da un oggetto, esso può venire improvvisamente
  874. posizionato davanti all'oggetto che lo copre.  Di conseguenza vi capiterà
  875. spesso di dover scegliere la priorità "Oggetti su Uomo" anche per un nodo
  876. che non è coperto da alcun oggetto per essere sicuri che l'Omino sia
  877. completamente scoperto prima di cambiare la sua priorità.
  878.  
  879.  
  880.  
  881. I gadget.
  882.  
  883.  
  884. Agg. Nodi         Attiva l'aggiunta dei nodi: cliccate sulla scena per
  885.                   posizionare quanti nodi volete, e poi cliccate su questo
  886.                   gadget per uscire dall'aggiunta.
  887.  
  888. Uccidi Nodo       Chiede di selezionare un nodo e poi lo cancella. Cliccate
  889.                   ancora su questo bottone per annullare l'operazione.
  890.  
  891. Agg. Coll.        Attiva l'aggiunta dei collegamenti: cliccate sul nodo
  892.                   iniziale e su quello finale fino a quando non avrete
  893.                   posizionato tutti i colegamenti. Premete ancora questo
  894.                   gadget per uscire dall'aggiunta.
  895.  
  896. Codice            Attiva la sessione di programmazione. Quando avete finito
  897.                   di cambiare gli attributi del nodo premete ancora questo
  898.                   bottone.
  899.  
  900.  
  901. Aggiorna          Ridisegna tutta la grafica della scena.
  902.  
  903.  
  904. Setta Anim.       Cambia il campo "Anim" del nodo.
  905.  
  906. Cambia Pri        Cambia la priorità dell'Omino rispetto agli oggetti.
  907.  
  908. Set Start         Seleziona la scena in cui entrare quando l'Omino cammina
  909.                   su questo nodo.
  910.  
  911.  
  912. Set Condizione    Stabilisce la condizione che deve essere verificata
  913.                   affinché l'Omino possa oltrepassare il nodo.
  914.  
  915. Cancella Condiz.  Cancella il campi di condizione di un nodo.
  916.  
  917.  
  918. Nuovo Path        Cancella il path corrente.
  919.  
  920. Salva Path        Salva il path corrente in un file.
  921.  
  922. Carica Path       Carica un path da un file.
  923.  
  924.  
  925. ---------------------------------------------------------------------------
  926.  
  927.  
  928. ************
  929. Spot Editor.
  930. ************
  931.  
  932. Questo vi permette di posizionare degli "Spot" sulla scena:  essi sono
  933. semplicemente delle piccole crocette con due coordinate ed un nome.  Voi
  934. usate questo nome per designare un particolare spot e Doopsi userà le sue
  935. coordinate.  Gli spot vengono usati assieme, ad esempio, all'istruzione
  936. MoveObject per indicare il posto dove l'oggetto dovrà recarsi.
  937.  
  938.  
  939. Eccovi un TUTORIAL:
  940.  
  941. - Create una nuova scena (utilizzando il bottone "New" nella sezione
  942. dedicata alle scene della finestra principale dell'editor).
  943.  
  944. - Attivate lo Spot editor.
  945.  
  946. - Selezionate il gadget "Aggiungi Spot":  apparirà il messaggio "Aggiungi
  947. gli spot".
  948.  
  949. - Cliccate sulla scena dove volete mettere uno spot:  potete ripetere
  950. questa operazione fino a quando avrete posizionato tutti i vostri spot.
  951.  
  952. - Selezionate ancora il bottone "Aggiungi Spot" per disattivare il modo di
  953. aggiunta degli spot.
  954.  
  955. - Cliccate sulla scena per selezionare uno spot:  apparirà il messaggio
  956. "Informazioni".
  957.  
  958. - Potete modificare il nome dello spot corrente semplicemente scrivendolo
  959. nello string gadget "Nome Spot" e premendo Return.
  960.  
  961. - Uscite dallo Spot editor.
  962.  
  963.  
  964.  
  965. Descrizione generale.
  966.  
  967. Per aggiungere alcuni spot dovete cliccare sul bottone "Aggiungi Spot":
  968. quindi cliccate sulla scena ovunque vogliate posizionare uno spot.  Poiché
  969. uno spot senza un nome non ha senso lo Spot Editor attribuisce ai vostri
  970. spot un nome di default, nome che potete cambiare in ogni momento
  971. semplicemente riscrivendolo nel gadget stringa chiamato "Nome Spot" e
  972. premendo Return.  D'ora in poi potete aggiungere spot a vostro piacimento.
  973. Quando siete soddisfatti, potete interrompere l'aggiunta di spot premendo
  974. ancora il bottone sinistro del mouse sul gadget "Aggiungi Spot" o su quello
  975. chiamato "Elimina Spot" o, infine, su qualunque parte della finestra
  976. dell'editor.  Per eliminare uno spot premete una volta il gadget "Elimina
  977. Spot":  l'editor vi chiederà di scegliere lo spot da uccidere, e quindi non
  978. vi rimane che cliccare su tale spot.  Questo è tutto.  A proposito, dopo
  979. aver ucciso uno spot (o dopo aver deciso di non ucciderlo cliccando ancora
  980. nella finestra dell'editor) è necessario riselezionare il gadget "Elimina
  981. Spot" per ucciderne un'altro, e così via.
  982.  
  983. L'azione di default (quando non state aggiungendo o eliminando spot) è
  984. chiamata "Informazioni":  siete liberi di cliccare su qualunque spot per
  985. illuminarlo e visualizzare il suo nome nello string gadget.  Come ho detto
  986. in precedenza, questo nome può essere modificato ogni volta che viene
  987. visualizzato.
  988.  
  989. Manca ancora un gadget:  il bottone "Aggiorna".  Dopo aver posizionato (ed
  990. eliminato) molti spot la vostra scena potrebbe apparire un po' sottosopra:
  991. cliccate su questo gadget e Doopsi pulirà la stanza per voi.
  992.  
  993.  
  994. I gadget:
  995.  
  996. Aggiungi Spot     Attiva (e disattiva) l'aggiunta degli spot.
  997.  
  998. Elimina Spot      Cancella uno spot.
  999.  
  1000. Nome Spot         Modifica il nome dello spot.
  1001.  
  1002. Aggiorna          Ridisegna la scena.
  1003.  
  1004.  
  1005. ---------------------------------------------------------------------------
  1006.  
  1007.  
  1008. *************************
  1009. Screen Attributes editor.
  1010. *************************
  1011.  
  1012. Questo editor vi permette di cambiare il nome della scena corrente, di
  1013. caricare uno sfondo diverso senza rimuovere oggetti, percorso e spot che
  1014. avete già agganciato a quella scena, ed altre cose utili...
  1015.  
  1016. L'ultima riga in basso dice qualcosa del genere:  "Usa Azione Apri di
  1017. Oggetto pippo".  In altre parole il codice Doopsi contenuto nell'azione
  1018. specificata dell'oggetto selezionato verrà eseguito tutte le volte che
  1019. entrerete nella scena durante il gioco.  Per disattivare questa opzione
  1020. dovete cancellare il nome dell'oggetto nello string gadget.  Un
  1021. suggerimento utile:  se volete che il codice sia eseguito solo la prima
  1022. volta in cui entrate nella scena (o in occasioni speciali) potete sfruttare
  1023. il campo di stato dell'oggetto:  inserite in questo campo un valore
  1024. particolare ed iniziate il codice Doopsi con l'istruzione "IfStatus".
  1025.  
  1026.  
  1027. I gadget:
  1028.  
  1029. Cambia Sfondo     Carica un nuovo sfondo per la scena. Se almeno un nodo
  1030.                   del percorso esistente o uno spot cadono al di fuori
  1031.                   della bitmap allora l'editor vi avviserà senza, però,
  1032.                   rimuovere l'oggetto incriminato.
  1033.  
  1034. Nome Scena        Cambia il nome interno della scena.
  1035.  
  1036. Nome Musica       Potete inserire il nome di un modulo che verrà suonato
  1037.                   ogni volta che entrerete nella scena (durante il gioco,
  1038.                   ovviamente) e verrà interrotto quando uscirete dalla
  1039.                   scena stessa. Potete cliccare sul bottone per aprire un
  1040.                   file requester e selezionare il modulo, oppure potete
  1041.                   scriverne direttamente il nome nel gadget stringa.
  1042.  
  1043. Usa Azione        Questo cycle gadget vi permette di scegliere l'azione da
  1044.                   cui leggere il codice Doopsi che è eseguito quando
  1045.                   entrate nella scena durante il gioco.
  1046.  
  1047. di Oggetto        Seleziona l'oggetto da cui leggere il codice Doopsi
  1048.                   specificato dal gadget "Usa Azione". Questo bottone apre
  1049.                   una lista con i nomi di tutti gli oggetti. Potete anche
  1050.                   inserire il nome dell'oggetto a mano utilizzando il
  1051.                   gadget stringa.
  1052.  
  1053.  
  1054. ---------------------------------------------------------------------------
  1055.  
  1056.  
  1057. ***************************************
  1058. L'Editor degli Attributi di un Oggetto.
  1059. ***************************************
  1060.  
  1061. Questo editor vi permette di specificare le caratteristiche di un oggetto e
  1062. di posizionarlo sulla scena.
  1063.  
  1064.  
  1065. Un primo tutorial: "il foglietto".
  1066.  
  1067. - Suppongo che abbiate già caricato una scena per potervi posizionare degli
  1068. oggetti.  Ora create un nuovo oggetto premendo il bottone "Nuovo" nella
  1069. sezione dedicata agli oggetti della finestra principale.
  1070.  
  1071. - Attivate l'editor degli Attributi.
  1072.  
  1073. - Nel gadget "Nome" scrivete "il foglietto".
  1074.  
  1075. - Cliccate sul gadget "Nome Interno" e scrivete "foglietto".
  1076.  
  1077. - Cliccate sul cycle gadget per selezionare "Grafica" come tipo di oggetto,
  1078. in quanto il nostro oggetto dovrà essere disegnato sulla scena.
  1079.  
  1080. - Premete il bottone "Agg." e, usando il file requester, scegliere
  1081. l'immagine "paper" nella directory Tutorial.  Ora l'immagine è agganciata
  1082. all'oggetto.
  1083.  
  1084. - Infine premete il bottone "Pos" per posizionare l'oggetto sulla scena.
  1085.  
  1086. - Potete muovere l'oggetto nella sua posizione finale selezionandolo con il
  1087. mouse e trascinandolo all'interno della scena.
  1088.  
  1089.  
  1090. Un secondo tutorial: "una zona vuota".
  1091.  
  1092. - Create un nuovo oggetto come nel precedente tutorial.
  1093.  
  1094. - Scrivete il suo nome e (più importante) il suo nome interno.
  1095.  
  1096. - Cliccate sul cycle gadget per selezionare "Vuota" come tipo di oggetto:
  1097. il nostro oggetto sarà una cornice vuota (che non verrà disegnata sullo
  1098. schermo durante il gioco).
  1099.  
  1100. - Premete il bottone "Setta Zona": un rettangolo apparirà sulla scena.
  1101.  
  1102. - Trascinate il rettangolo nella scena con il mouse e scalatelo utilizzando
  1103. il gadget posizionato nell'angolo in basso a destra del rettangolo stesso.
  1104.  
  1105. - Quando avete finito premete il gadget "Pos" per agganciare questo oggetto
  1106. alla scena.
  1107.  
  1108.  
  1109.  
  1110. Descrizione generale.
  1111.  
  1112. Potete attivare questo editor cliccando sul bottone "Attrib" nella sezione
  1113. dedicata agli oggetti della finestra principale o cliccando il tasto destro
  1114. del mouse su un oggetto già posizionato sullo schermo.
  1115.  
  1116. I primi campi che dovete riempire sono quelli indicati con "Nome" e "Nome
  1117. Interno":  il nome di un oggetto è la stringa che appare sulla linea di
  1118. testo della console del Player quando il puntatore è su tale oggetto; il
  1119. nome interno è l'identificatore che Doopsi usa per indirizzare un oggetto:
  1120. per questa ragione siete invitati a non usare più volte lo stesso nome.
  1121.  
  1122. Dopodiché concentriamoci sulla zona delle immagini.  Per aggiungere alcune
  1123. immagini al vostro oggetto dovete cliccare sul bottone "Agg.":  l'editor
  1124. aprirà un file requester e, dopo che avrete selezionato un file valido,
  1125. visualizzerà il nome dell'immagine (completa di percorso) nella lista.  Per
  1126. eliminare un'immagine non dovete far altro che cliccare su tale immagine e
  1127. poi premere il bottone "Uccidi".  Poi dovete dire all'editor quale immagine
  1128. usare per disegnare l'oggetto sulla scena; per far ciò selezionate una
  1129. immagine nella lista a premete il gadget "Shp Def.":  apparirà un numero
  1130. che mostra qual è l'immagine corrente.  Una procedura simile è necessaria
  1131. per dire al Player qual è l'immagine di inventario:  cliccate su
  1132. un'immagine e poi sul bottone "Shp Inv.".  A proposito:  le immagini di
  1133. inventario devono avere dimensioni di 32*32 pixel, altrimenti verranno
  1134. tagliate prima di essere visualizzate dal Player.  Vi è ancora un gadget da
  1135. descrivere:  il cycle gadget è necessario per scegliere se si vuole un
  1136. oggetto "Grafico" od uno "Vuoto".  Il primo ha un'immagine corrente che
  1137. viene disegnata sulla scena, mentre il secondo è solo un rettangolo vuoto
  1138. utilizzato per incorniciare qualcosa appartenente allo sfondo.  Per
  1139. posizionare e ridimensionare tale rettangolo dovete cliccare sul bottone
  1140. "Setta Zona":  una Zona Vuota verrà disegnata sulla scena, zona che potete
  1141. trascinare col mouse cliccando su di essa; per riscalarla premete
  1142. semplicemente sul quadrato pieno nell'angolo in basso a destra della zona
  1143. stessa.  E' importante notare che anche oggetti Vuoti possono avere alcune
  1144. immagini agganciate:  potete usare queste immagini con i comandi del Player
  1145. che riguardano l'inventario.  Ciascun oggetto ha spazio per più di una
  1146. immagine e più di una immagine di inventario poiché durante il gioco potete
  1147. cambiare l'immagine corrente dell'oggetto o la sua immagine di inventario
  1148. utilizzando le istruzioni del Player relative alle immagini.
  1149.  
  1150. Nel gadget "Stato" potete inserire il valore di partenza dello stato
  1151. dell'oggetto.  Il campo di stato è un valore intero privo di un significato
  1152. particolare, dimodoché lo potete usare per qualunque scopo vi aggradi, ad
  1153. es.:  potete memorizzare qui lo stato Aperto/Chiuso di una porta scrivendo
  1154. 0 per Chiuso e 1 per Aperto, e potete cambiare questo stato durante il
  1155. gioco usando ChangeStatus ed altre istruzioni del Player.
  1156.  
  1157. Uscendo da questo editor ricordate di premere sempre il bottone "Pos" se
  1158. volete agganciare l'oggetto alla scena, anche se l'avete già fatto in
  1159. precedenza:  questo perché il gadget "Ok" accetta le modifiche apportate
  1160. all'oggetto ma sgancia sempre tale oggetto dalla scena.  Non c'è bisogno di
  1161. spiegare cosa fa il gadget "Cancella".
  1162.  
  1163.  
  1164. I gadget:
  1165.  
  1166. Nome           Nome dell'oggetto.
  1167.  
  1168. Nome Interno   Nome interno dell'oggetto.
  1169.  
  1170. Shp Def.       Questo intero punta all'immagine utilizzata per disegnare
  1171.                l'oggetto sulla scena. Non ha significato alcuno per una
  1172.                Zona Vuota.
  1173.  
  1174. Shp Inv.       Questo intero punta all'immagine utilizzata dal Player per
  1175.                immagazzinare l'oggetto nell'inventario (le dimensioni di
  1176.                questa immagine devono essere di 32*32 pixel).
  1177.  
  1178. Vuota/Grafica  Seleziona il tipo di oggetto.
  1179.  
  1180. Agg.           Aggancia un'immagine all'oggetto e aggiunge il suo nome alla
  1181.                lista.
  1182.  
  1183. Uccidi         Rimuove un'immagine dalla lista.
  1184.  
  1185. Stato          Modifica il valore corrente dello stato.
  1186.  
  1187. Setta Zona     Crea il rettangolo di una Zona Vuota.
  1188.  
  1189. Pos            Esce agganciando l'oggetto alla scena.
  1190.  
  1191. Ok             Esce senza agganciare l'oggetto alla scena (se l'oggetto è
  1192.                già agganciato, allora questo gadget lo sgancia).
  1193.  
  1194. Cancella       Esce ripristinando le condizioni iniziali.
  1195.  
  1196.  
  1197. ---------------------------------------------------------------------------
  1198.  
  1199.  
  1200. *************
  1201. Doopsi Coder.
  1202. *************
  1203.  
  1204. Introduzione.
  1205.  
  1206. Doopsi Coder è l'editor che vi permette di "programmare" gli oggetti a
  1207. reagire alle azioni dell'utente.  Per il player di DOOPSI, gli oggetti non
  1208. sono altro che complesse strutture di dati senza però alcun vero
  1209. significato.  Compito del Coder è di permettere un coordinamento tra le
  1210. azioni possibili dal giocatore e il comportamento di ogni oggetto.  Il
  1211. Coder è forse la parte più importante nell'editing di una avventura, in
  1212. quanto permette effettivamente al creatore della storia di dare una forma
  1213. "reale" agli oggetti in scena e di permettere al giocatore di interagire
  1214. con gli oggetti stessi.
  1215.  
  1216. La teoria che è alla base del Doopsi Coder è molto semplice:  ad ogni
  1217. azione permessa all'utente potrebbe corrispondere una reazione da parte
  1218. dell'oggetto interessato.  Abbiamo detto "potrebbe" perché non è necessario
  1219. che ogni oggetto sia in grado di rispondere a tutte le azioni che l'utente
  1220. desidererebbe effettuare.  Se ad esempio il giocatore volesse parlare con
  1221. la porta, quest'ultima non è tenuta a rispondere (a meno che non si tratti
  1222. di una porta magica...)
  1223.  
  1224. La programmazione degli oggetti in Doopsi avviene all'interno del Coder,
  1225. che garantisce un ambiente semplice e rapido per la loro organizzazione.
  1226. Non preoccupatevi se non avete dimestichezza con la programmazione:  non
  1227. dovrete scrivere neppure una linea di codice, in quanto il Coder rende
  1228. questo compito accessibile a chiunque:  tutto quello che dovrete fare è di
  1229. avere bene in mente quello che desiderate ottenere da una determinata
  1230. azione su di uno specifico oggetto.
  1231.  
  1232.  
  1233. Nozioni generali di OOP in Doopsi.
  1234.  
  1235. Doopsi significa "Dynamic Object Oriented Programming System Interface",
  1236. Interfaccia di Sistema per la Programmazione Dinamica Orientata agli
  1237. Oggetti.  I programmatori smaliziati noteranno che in Doopsi non è
  1238. presente un vero e proprio interprete OOP, bensì è Doopsi stesso che si
  1239. occupa di gestire l'interfacciamento oggetto-codice.  Per questo la
  1240. programmazione OOP in Doopsi è Dinamica:  gli oggetti possono mutare forma
  1241. e caratteristiche "al volo".  Gli oggetti sono visti come delle "entità",
  1242. un insieme di dati e caratteristiche che li rendono unici e riconoscibili.
  1243. Tutti i dati contenuti all'interno di un oggetto sono protetti e non
  1244. direttamente accessibili.  L'accesso è garantito solo tramite le istruzioni
  1245. del Doopsi Language che si occupa di "smistare" i comandi e di accedere
  1246. correttamente ai dati desiderati.  Molti comandi chiedono come primo
  1247. parametro il nome interno dell'oggetto sul quale dovranno agire.  Questo
  1248. significa che il codice di un oggetto può modificare le caratteristiche di
  1249. un altro oggetto del gioco.  Ogni oggetto possiede uno "Status", un valore
  1250. che può essere modificato con del codice Doopsi e che rappresenta quello
  1251. che il programmatore desidera:  il valore di Status è arbitrario e non è
  1252. legato all'oggetto, dipende al programmatore definire come utilizzare
  1253. Status.
  1254.  
  1255. I comandi del Doopsi-Language sono elencati completamente nell'Appendice A.
  1256.  
  1257.  
  1258. NOTA:  i seguenti tutorial presuppongono che voi abbiate padronanza di
  1259. altre parti di Doopsi, come l'Editor degli Attributi dell'Oggetto.  Vedere
  1260. i Tutorial del capitolo "Creazione di Oggetti" se non si hanno ben chiari i
  1261. principi della creazione degli oggetti.
  1262.  
  1263.  
  1264. Tutorial 1 - Una porta che si apre e si chiude
  1265.  
  1266. Questo esempio presuppone che abbiate già creato un oggetto chiamato
  1267. internamente "door" che possiede due immagini, la prima raffigurante la
  1268. porta chiusa ("door_closed") e la seconda raffigurante la porta aperta
  1269. ("door_open").
  1270.  
  1271. - Dall'editor principale, selezionate l'oggetto "door" come corrente e
  1272. premete il bottone Doopsi Coder, sarete così pronti a programmare
  1273. l'oggetto.
  1274.  
  1275. - Premete il bottone "Apri" per programmare la reazione dell'oggetto
  1276. "door" all'azione "Apri".  Eseguite questi passi:
  1277.  
  1278.     - Comando "IfStatus"
  1279.     - Selezionate l'oggetto "door"
  1280.     - Inserite 0 come valore
  1281.     (Nella finestra del Coder comparirà il comando: IfStatus SELF, 00)
  1282.     - Comando "ChangeStatus"
  1283.     - Selezionate l'oggetto "door"
  1284.     - Inserite 1 come valore
  1285.     (Nella finestra del Coder comparirà il comando: ChangeStatus SELF, 01)
  1286.     - Comando "ChangeShape"
  1287.     - Selezionate l'oggetto "door"
  1288.     - Selezionate l'immagine raffigurante la porta aperta (ad es. "door_open")
  1289.     (Nella finestra del Coder comparirà il comando: ChangeShape SELF, 01)
  1290.     - Comando "Else"
  1291.     - Comando "ShowText"
  1292.     - Inserite "La porta è già aperta"
  1293.     (Nella finestra del Coder comparirà il comando:  ShowText La portà è già
  1294.    aperta)
  1295.    - Comando "EndIf"
  1296.  
  1297. Al termine della sequenza appenna effettuata, nella finestra del Coder
  1298. comparirà questo codice:
  1299.  
  1300.     IfStatus SELF, 00
  1301.     ChangeStatus SELF, 01
  1302.     ChangeShape SELF, 01
  1303.     Else
  1304.     ShowText La porta è già aperta
  1305.     EndIf
  1306.  
  1307. Questo codice significa (spiegato riga per riga): 
  1308.  
  1309.     Se lo status dell'oggetto stesso (SELF, la porta) è 0
  1310.     Cambia lo status dell'oggetto stesso (SELF, la porta) a 1
  1311.     Cambia l'immagine dell'oggetto stesso (sempre la porta) a 1 ("door_open")
  1312.     Altrimenti (Else)
  1313.     Mostra il Messaggio "La porta è già aperta"
  1314.     Fine del controllo.
  1315.  
  1316. Scriviamo adesso il codice necessario per l'azione "Chiudi".  Premete il
  1317. bottone "Chiudi" per programmare la risposta dell'oggetto porta all'azione
  1318. di chiusura.  Eseguite questi passi:
  1319.  
  1320.     - Comando "IfStatus"
  1321.     - Selezionate l'oggetto "door"
  1322.     - Inserite il valore 1
  1323.     - Comando "ChangeStatus"
  1324.     - Selezionate l'oggetto "door"
  1325.     - Inserite il valore 0 
  1326.     - Comando "ChangeShape"
  1327.     - Selezionate l'oggetto "door"
  1328.     - Selezionate l'immagine "door_closed"
  1329.     - Comando "Else"
  1330.     - Comando "ShowText"
  1331.     - Inserite "La porta è già chiusa"
  1332.     - Comando "EndIf"
  1333.  
  1334. Comparirà il seguente codice:
  1335.  
  1336.     IfStatus SELF, 01
  1337.     ChangeStatus SELF, 00
  1338.     ChangeShape SELF, 00
  1339.     Else
  1340.     ShowText La porta è già chiusa
  1341.     EndIf
  1342.  
  1343. Che "tradotto" significa:
  1344.  
  1345.     Se lo Status dell'oggetto stesso (SELF, porta) è a 1
  1346.     Cambia lo Status dell'oggetto stesso (SELF, la porta) a 0
  1347.     Cambia l'immagine dell'oggetto stesso (SELF, sempre la porta) a 0 (la
  1348.       porta chiusa)
  1349.     Altrimenti
  1350.     Mostra Il Testo "La porta è già chiusa"
  1351.  
  1352. La programmazione del nostro oggetto "door" è terminata.  Premete il
  1353. bottone OK per tornare al Doopsi Editor.
  1354.  
  1355.  
  1356. Tutorial 2
  1357.  
  1358. In questo tutorial mostreremo come modificare le caratteristiche di un
  1359. oggetto da un altro oggetto.  Questo tutorial presuppone che voi abbiate
  1360. già creato due oggetti, uno chiamato "lamp" con due immagini, una di
  1361. lampadina spenta ("light_off") ed una accesa ("light_on"); e l'altro
  1362. chiamato "button", con una sola immagine, di bottone.
  1363.  
  1364. - Selezionate l'oggetto "button" ed entrate nel Doopsi Coder.
  1365.  
  1366. - Premete sul bottone "Spingi", per editare il codice riferito alla
  1367. pressione da parte del giocatore del bottone "button".
  1368.  
  1369. - Eseguite queste operazioni:
  1370.  
  1371.     - Comando "IfStatus"
  1372.     - Selezionate "lamp"
  1373.     - Inserite 0
  1374.     - Comando "ChangeStatus"
  1375.     - Selezionate "lamp"
  1376.     - Inserite 1
  1377.     - Comando "ChangeShape"
  1378.     - Selezionate "lamp"
  1379.     - Selezionate "light_on"
  1380.     - Comando "Else"
  1381.     - Comando "ChangeStatus"
  1382.     - Selezionate "lamp"
  1383.     - Inserite 0
  1384.     - Comando "ChangeShape"
  1385.     - Selezionate "lamp"
  1386.     - Selezionate "light_off"
  1387.     - Comando "EndIf"
  1388.  
  1389. Nella finestra di codice di Doopsi Coder, comparirà il seguente programma:
  1390.  
  1391.     IfStatus lamp, 00
  1392.     ChangeStatus lamp,01
  1393.     ChangeShape lamp,01
  1394.     Else
  1395.     ChangeStatus lamp,00
  1396.     ChangeShape lamp,00
  1397.     EndIf
  1398.  
  1399. Che "tradotto" significa:
  1400.  
  1401.     Se lo Status della lampada ("lamp") è 0 (la lampada è spenta)
  1402.     Cambia lo Status di lamp in 1 (lampada accesa)
  1403.     Cambia l'immagine di lamp a "light_on"
  1404.     Altrimenti (la lampada è accesa)
  1405.     Cambia lo Status di lamp a 0 (lampada spenta)
  1406.     Cambia l'immagine di lamp a "light_off"
  1407.         
  1408. Come vedete dal codice, non abbiamo dovuto programmare l'oggetto "lamp",
  1409. eppure l'oggetto modifica il suo stato (anche grafico) man mano che il
  1410. giocatore preme il pulsante "button".  Naturalmente, questo tutorial è
  1411. molto semplice, ma è possibile creare dipendenze molto complesse tra
  1412. oggetti differenti, rendendo il gioco finale ricco e articolato.
  1413.  
  1414.  
  1415.  
  1416. Descrizione generale.
  1417.  
  1418. Prima di tutto dovete selezionare l'azione che vi apprestate a programmare:
  1419. per far ciò premete uno dei nove bottoni "Azioni Possibili" che compaiono
  1420. nell'angolo in alto a sinistra della finestra; il nome dell'azione scelta
  1421. comparirà nel campo "Azione Corrente" sul fondo della finestra.
  1422.  
  1423. Per inserire una qualsiasi istruzione eseguite le seguenti azioni:
  1424. cliccate sul nome dell'istruzione desiderata contenuta nel lister che si
  1425. trova alla destra delle "Azioni Possibili"; l'Editor vi chiederà di
  1426. riempire qualsiasi argomento l'istruzione potrebbe avere.  Dopo aver
  1427. soddisfatto tutte le richieste potrete vedere apparire la linea di codice
  1428. nell'area del programma (il grosso rettangolo con un linea evidenziata in
  1429. esso).  La barra nell'area del programma è una specie di cursore che
  1430. evidenzia la linea corrente.  L'istruzione che state editando verrà
  1431. inserita prima di quella evidenziata.  Potete muovere il cursore cliccando
  1432. direttamente sull linea scelta oppure usando i gadget U (Up), D (Dowm), T
  1433. (Top) e B (Bottom).  Per eliminare una linea premete semplicemente il
  1434. bottone "Uccidi".
  1435.  
  1436.  
  1437.  
  1438. I gadget:
  1439.  
  1440. Nella zona in alto a sinistra vi sono i nove gadget per selezionare una
  1441. delle nove azioni da programmare.  Alla destra di questa zona vi è il
  1442. lister con tutte le istruzioni del linguaggio Doopsi.  Gli altri gadget
  1443. sono:
  1444.  
  1445. T              Sposta all'inizio del codice.
  1446.  
  1447. B              Sposta alla fine del codice.
  1448.  
  1449. U              Sposta in su di una linea. (Per muovervi su una linea potete
  1450.                cliccare direttamente su quella linea.)
  1451.  
  1452. D              Sposta in giù di una linea.  (Per muovervi su una linea
  1453.                potete cliccare direttamente su quella linea.)
  1454.  
  1455. Uccidi         Rimuove la linea di codice attualmente evidenziata.
  1456.  
  1457.  
  1458. ---------------------------------------------------------------------------
  1459.  
  1460.  
  1461. ****************
  1462. L' AnimWorkshop.
  1463. ****************
  1464.  
  1465. Questo editor vi permette di creare animazioni mettendo in sequenza alcune
  1466. immagini.  Il risultato è che potete mutare un semplice Oggetto in qualcosa
  1467. di più complesso chiamato AnimObject, ovvero un oggetto contenente
  1468. un'animazione.  Tale animazione verrà visualizzata quando l'AnimObject è
  1469. disegnato sulla scena.
  1470.  
  1471.  
  1472. Iniziamo con un veloce TUTORIAL:  "assemblare un pendolo"
  1473.  
  1474. - Create un nuovo oggetto con "Pendolo" come nome interno.
  1475.  
  1476. - Attivate AnimWorkshop.
  1477.  
  1478. - Premete il gadget "Carica Frames" e, utilizzando il file requester,
  1479. selezionate l'immagine denominata "pendulum.000".  AnimWorkshop caricherà
  1480. le tre immagini chiamate "pendulum.000", "pendulum.001" e "pendulum.002".
  1481.  
  1482. - Selezionate il fotogramma numero 0 e cliccate sul gadget "Agg Frame";
  1483. selezionate il fotogramma numero 1 e cliccate sul gadget "Agg Frame";
  1484. ripetete il tutto anche per il terzo ed ultimo fotogramma.
  1485.  
  1486. - Premete il gadget "Ping-Pong" per creare un'animazione di tipo Ping-Pong
  1487. (nel nostro caso verrà aggiunto un solo fotogramma).
  1488.  
  1489. - Scrivete 3 nel gadget del "Frame Rate".
  1490.  
  1491. - Premete "Anima" per vedere l'animazione e il tasto destro del mouse per
  1492. fermarla.
  1493.  
  1494. - Premete il gadget "Ok" per uscire da AnimWorkshop.
  1495.  
  1496.  
  1497. Ed eccovi un tutorial più difficile su "come costruire l'Omino":
  1498.  
  1499. - Per prima cosa create un nuovo oggetto utilizzando l'editor degli
  1500. Attributi (suppongo che sappiate già fare questo) e chiamatelo (nome
  1501. interno) "OminoDestra".  Ora siete pronti per attivare AnimWorkshop.
  1502.  
  1503. - Premete il bottone "Carica Frames" e, utilizzando il file requester,
  1504. selezionate l'immagine chiamata "man_walk_right.000":  AnimWorkshop
  1505. caricherà questa immagine e tutte le seguenti col medesimo nome e numero
  1506. crescente; questi fotogrammi saranno disegnati su un nuovo schermo.  Potete
  1507. scorrere le immagini utilizzando i gadget "Prec" e "Succ" nella parte alta
  1508. della finestra.
  1509.  
  1510. - Posizionatevi sul fotogramma numero 1 (il fotogramma 0 è quello "a
  1511. riposo" e lo prenderò in considerazione più tardi) e premete il bottone
  1512. "Agg Frame":  il numero 1 apparirà nella finestra della Sequenza.  Ora
  1513. muovetevi sul fotogramma numero 2 e premete ancora su Agg Frame; ripetete
  1514. queste azioni fino a quando anche l'ultimo fotogramma farà parte della
  1515. sequenza.
  1516.  
  1517. - Ora potete inserire il frame rate nel gagdet "Frame Rate":  scrivete 12 e
  1518. premete Return.
  1519.  
  1520. - La vostra animazione è completa:  premete il gagdet "Anima" per
  1521. ammirarla.
  1522.  
  1523. - Fermate l'animazione premendo il tasto destro del mouse.  Ora potete
  1524. uscire da AnimWorkshop premendo il bottone "Va Bene" o "Cancella" a seconda
  1525. se siete soddisfatti della vostra animazione o meno.
  1526.  
  1527. - E il frame numero 0?  Non si può includerlo nell'animazione perché è il
  1528. fotogramma "a riposo", ma il Player ha bisogno di sapere quale frame usare
  1529. quando l'Omino è fermo:  quindi noi lo agganciamo al nostro oggetto Omino e
  1530. puntiamo ad esso mediante il campo "Immagine Corrente" nell'editor degli
  1531. Attributi.  (Ovviamente questo campo non ha significato alcuno per una
  1532. animazione qualunque.)
  1533.  
  1534. - Un'ultima nota:  se ora attivate l'editor degli Attributi vedrete tutte
  1535. le immagini agganciate al nostro AnimObject mediante AnimWorkshop.  Questo
  1536. significa che potete agganciare i fotogrammi anche utilizzando l'editor
  1537. degli Attributi se preferite.
  1538.  
  1539.  
  1540.  
  1541. Descrizione generale.
  1542.  
  1543. A questo punto suppongo che sappiate già come creare un nuovo oggetto.  Se
  1544. volete convertire tale oggetto in un AnimObject allora attivate
  1545. l'AnimWorkshop.  Se l'utente ha già agganciato alcune immagini a questo
  1546. oggetto utilizzando l'editor degli Attributi allora tali immagini saranno
  1547. caricate e visualizzate immediatamente; se una o più immagini non vengono
  1548. trovate l'editor segnalerà un errore e le immagini mancanti rimarranno
  1549. vuote.  In alternativa è possibile caricare le immagini mediante
  1550. AnimWorkshop stesso:  ma si tenga presente che in questo caso le immagini
  1551. devono costituire una sequenza sul disco, vale a dire che devono avere
  1552. tutte il medesimo nome seguito da un punto e da un numero a tre (tre, non
  1553. quattro o due!) cifre, ad es.  "pippo.000".  Quindi, quando l'utente
  1554. seleziona il gadget Carica Frames, AnimWorkshop aprirà un file requester:
  1555. l'utente deve selezionare la prima immagine della sequenza (che non deve
  1556. necessariamente essere quella numerata "pippo.000"; potete iniziare
  1557. dall'immagine "pippo.154" se vi piace), ed allora l'editor proseguirà
  1558. caricando tutte le immagini che trova con il medesimo nome e con numero
  1559. crescente (ad es.:  "pippo.154", "pippo.155", e così via) fino a quando
  1560. raggiunge l'ultima o non ha più spazio per agganciare ulteriori immagini
  1561. all'oggetto corrente (il numero di immagini che un oggetto può possedere è
  1562. ovviamente limitato).
  1563.  
  1564. Dopo che avete caricato le immagini siete pronti per costruire la sequenza
  1565. dei fotogrammi.  Prima di tutto, vi sono due gadget nella parte alta della
  1566. finestra, chiamati "Prec" e "Succ", per scorrere i fotogrammi, e fra di
  1567. essi è scritto il numero sequenziale del fotogramma visualizzato:  potete
  1568. inserirlo manualmente.  Dunque dovete agire come segue:  selezionate il
  1569. fotogramma da includere nella sequenza e premete il bottone Aggiugi Frame.
  1570. Semplice, no?  Il fotogramma verrà inserito subito dopo la posizione
  1571. corrente, e voi saprete sempre qual è la posizione corrente in quanto è
  1572. evidenziata:  potete inoltre muovere questa specie di cursore utilizzando i
  1573. gadget "Prec" e "Succ" alla base della finestra o utilizzando i tasti
  1574. cursore.  A proposito, se occorre inserire un fotogramma prima del primo
  1575. (scusate il gioco di parole, ma rende l'idea) dovete muovere il cursore sul
  1576. primo fotogramma della sequenza e poi muoverlo ancora una volta verso
  1577. sinistra:  il cursore sparirà fuori dalla finestra della Sequenza e siete
  1578. pronti per cliccare sul gadget "Aggiungi Frame".  Posso dirvi di più:  se
  1579. cliccate due volte sul numero di un fotogramma nella finestra della
  1580. Sequenza tale fotogramma sarà visualizzato.  Rimuovere un fotogramma è
  1581. ancora più semplice:  posizionatevi sul fotogramma incriminato nella
  1582. Sequenza e cliccate sul bottone "Rimuovi Frame".
  1583.  
  1584. Veniamo ora alla descrizione dei gadget rimanenti.  Un modo comodo per
  1585. creare un'animazione a ping-pong è quello di costruire la parte "ping" come
  1586. descritto precedentemente e poi selezionare il gadget "Crea Ping-Pong":
  1587. AnimWorkshop aggiungerà alla vostra sequenza la parte "ping" ribaltata
  1588. (senza il primo e l'ultimo fotogramma) per creare la parte "pong".
  1589. Inoltre, se non siete soddisfatti della vostra sequenza potete sempre
  1590. eliminarla con una sola pressione del bottone "Cancella Sequenza".  Potete
  1591. comunicare ad AnimWorkshop la velocità della vostra animazione modificando
  1592. il valore del gadget "Frame Rate".  Ultimo ma non meno importante è il
  1593. gadget "Anima".  So che sapete a cosa serve questo, ma lasciatemi
  1594. aggiungere un'altra cosa:  Doopsi visualizza tutte le animazioni in loop,
  1595. ovvero la sequenza viene letta da sinistra a destra fino alla fine, e poi
  1596. ancora dall'inizio fino a quando non viene fermato.
  1597.  
  1598.  
  1599. I gadget:
  1600.  
  1601. Carica Frames     Carica una sequenza di fotogrammi. Una sequenza è
  1602.                   composta da files con lo stesso nome ma con numero
  1603.                   sequenziale crescente (ad es.: pippo.000, pippo.001,
  1604.                   ...). Voi selezionate il primo nome della lista.
  1605.  
  1606. Prec              Muove al fotogramma precedente nella lista.
  1607.  
  1608. Succ              Muove al fotogramma successivo nella lista.
  1609.  
  1610. Agg Frame         Aggiunge alla sequenza il fotogramma attualmente
  1611.                   visualizzato.
  1612.  
  1613. Canc Frame        Cancella il fotogramma selezionato dalla sequenza. Voi
  1614.                   selezionate il fotogramma muovendo il cursore sopra di
  1615.                   esso.
  1616.  
  1617. Crea Ping-Pong    Crea un'animazione a ping-pong modificando la vostra
  1618.                   sequenza di fotogrammi.
  1619.  
  1620. Frame Rate        Cambia il frame rate dell'animazione.
  1621.  
  1622. Cancella Sequenza Elimina la sequenza di fotogrammi.
  1623.  
  1624. Anima             Mostra l'animazione.
  1625.  
  1626. Prec              Va al fotogramma precedente nella sequenza (potete usare
  1627.                   anche i tasti cursore).
  1628.  
  1629. Succ              Va al fotogramma successivo nella sequenza.
  1630.  
  1631.  
  1632. ---------------------------------------------------------------------------
  1633.  
  1634.  
  1635. **********************
  1636. L'Editor dei Dialoghi.
  1637. **********************
  1638.  
  1639. Introduzione.
  1640.  
  1641. In ogni avventura che si rispetti, devono essere presenti dei dialoghi tra
  1642. più personaggi.  Migliori sono i dialoghi, più brillanti sono le
  1643. conversazioni, più divertente risulta l'avventura.  Creare i dialoghi non è
  1644. un compito facile da eseguire:  bisogna tenere in considerazione moltissimi
  1645. elementi e prevedere una risposta differente ad ogni frase che è possibile
  1646. dire.  E' per questo motivo, che vi consigliamo vivamente di pianificare
  1647. attentamente i vostri dialoghi e di tracciare su carta dei veri e propri
  1648. diagrammi nei quali descrivere in maniera molto "visiva" come dovrebbe
  1649. essere strutturato un dialogo.
  1650.  
  1651. In Doopsi i dialoghi possono essere strutturati in maniera molto potente e
  1652. versatile ed è possibile scrivere dialoghi che richiamano altri dialoghi o
  1653. che saltano da una parte all'altra per poi tornare sui loro stessi passi.
  1654.  
  1655. Il Dialog Editor è uno strumento semplice e funzionale che vi permetterà di
  1656. creare dialoghi complessissimi in un brevissimo spazio di tempo:
  1657. attenzione però, perché, come vi abbiamo già detto, se non pianificherete
  1658. prima tutto il dialogo, rischiate veramente di perdere, per così dire, il
  1659. filo del discorso.
  1660.  
  1661.  
  1662. Cos'è un dialogo:
  1663.  
  1664. Un Dialogo, in DOOPSI, è formato da una sequenza più o meno lunga di
  1665. pagine.  Come per tutti gli altri elementi di Doopsi anche le pagine di
  1666. dialogo hanno il loro proprio "nome interno" che le identifica
  1667. univocamente.
  1668.  
  1669. Per il resto, una pagina è formata da una "risposta", che è la frase che
  1670. dirà l'interlocutore all'Omino, e una o più frasi selezionabili
  1671. dall'utente, come risposta alla "risposta"...  hmmm, detto così può
  1672. sembrare un pò confuso, cerchiamo di spiegare meglio, con un esempio:
  1673. iniziamo subito con il tutorial.
  1674.  
  1675.  
  1676. Tutorial 1 - Un Breve Dialogo
  1677.  
  1678. Per entrare nel Dialog Editor, premete semplicemente il bottone
  1679. "Dialog Editor" presente nella Finestra Principale.
  1680.  
  1681.    - Premete il bottone "Nuova" per creare una nuova pagina di dialogo.
  1682.      Vi verrà mostrato un requester per l'inserimento del nome della
  1683.      pagina. Dal momento che questa pagina verrà utilizzata come
  1684.      punto di partenza, sarà meglio darle un nome significativo,
  1685.      scrivete quindi "Partenza_Dialogo".
  1686.      Adesso siete in grado di iniziare a scrivere le frasi vere e proprie.
  1687.  
  1688.    - Premete il bottone "Agg." in basso a sinistra, per aggiungere una
  1689.      nuova frase. La stringa "Nuova Frase" comparirà nel gadget chiamato,
  1690.      per l'appunto, "Frase:". Cancellate "Nuova Frase" ed inserite invece
  1691.      questo: "Ciao, come stai?"
  1692.  
  1693.    - Ripetete adesso il punto 2, inserendo però i messaggi:
  1694.      "Come va!" e "Adesso devo proprio andare".
  1695.  
  1696.    - Adesso dovremo creare una seconda pagina, premiamo "Nuova" e mettiamo
  1697.      come nome "Come_Stai", così ci ricorderemo che quello che
  1698.      immetteremo in questa pagina sarà in risposta a "Ciao, come stai?"
  1699.      della pagina precedente.
  1700.  
  1701.    - Nel gadget in alto, dove c'è scritto "Risposta:", scrivete "Bene!",
  1702.      questa è la risposta che il nostro interlocutore ci darà.
  1703.      Scrivere qualcosa in questo campo, non è strettamente necessario,
  1704.      ma è sempre meglio fare in modo che il nostro interlocutore dica
  1705.      qualcosa... altrimenti il nostro dialogo si potrebbe trasformare
  1706.      in un "monologo".
  1707.      L'unica situazione nella quale si può effettivamente omettere una
  1708.      stringa di risposta, è nella prima pagina del nostro dialogo,
  1709.      quando, cioe, "attachiamo bottone" con chi vogliamo parlare.
  1710.  
  1711.    - Ripetiamo il passo 2 e scriviamo solo una frase che dica
  1712.      "Ora vado, ciao".
  1713.  
  1714.    - Adesso dobbiamo preoccuparci di "agganciare" le due pagine di dialogo.
  1715.      Per farlo, torniamo alla prima pagina di dialogo. Permete il
  1716.      gadget "Seleziona": comparirà un Lister con i nomi delle pagine di
  1717.      dialogo, nel nostro caso, ci saranno due nomi: "Partenza_Dialogo" e
  1718.      "Come_Stai". Selezionate "Partenza_Dialogo".
  1719.      La finestra del Dialog Editor, mostrerà di nuovo la pagina che
  1720.      abbiamo editato in precedenza.
  1721.  
  1722.    - Adesso premete sulla frase "Ciao, Come Stai?", che comparirà nel
  1723.      gadget di stringa (se volete, potrete anche editarla e modificarla)
  1724.      e poi premete sul bottone chiamato "Salto:", apparirà lo stesso
  1725.      Lister che abbiamo appena incontrato. Questa volta, selezionate la
  1726.      frase "Come_Stai": il nome di questa pagina comparirà nel gadget
  1727.      di stringa "Salto:"
  1728.      Ecco fatto! Adesso, quando, durnate il gioco, l'utente selezionerà
  1729.      la frase "Ciao! Come Stai?", l'interlocutore risponderà "Bene!".
  1730.      E' stato facile, no?
  1731.  
  1732.    - Giusto per sport, agganciamo anche alla frase "Come Va?", la pagina
  1733.      "Come_Stai". Premete su "Come Va?", poi su "Salto:" e selezionate
  1734.      "Come_Stai".
  1735.  
  1736. NOTA: una stringa Senza salto significa FINE DEL DIALOGO. Quando l'utente
  1737.       seleziona una di queste frasi, il dialogo termina.
  1738.       Nel nostro esempio abbiamo ben due frasi di questo tipo: una è
  1739.      "Adesso devo proprio andare" nella prima pagina e "Ora vado, ciao"
  1740.       nella seconda pagina.
  1741.  
  1742. NOTA2: per convenzione, la frase che fa "uscire" dalla modalità di dialogo
  1743.        è l'ultima tra le scelte possibili. Dove potete, mantenete
  1744.        inalterata questa convenzione.
  1745.  
  1746.  
  1747.  
  1748. Descrizione generale.
  1749.  
  1750. Il Dialog Editor è utilizzato per creare dialoghi fra l'Omino ed un'altro
  1751. Oggetto sulla scena.  Come abbiamo avuto occasione di dire introducendo
  1752. questo editor, un dialogo è costituito da un numero di pagine agganciate
  1753. fra di loro; qualunque pagina può essere la prima pagina:  il nome della
  1754. prima pagina verrà passato come argomento all'istruzione ShowDialog nel
  1755. Doopsi Coder.  Tutte le altre pagine del dialogo seguono automaticamente
  1756. poiché sono agganciate assieme mediante il campo "Salto".
  1757.  
  1758. Descriviamo ora il contenuto di una pagina.  In ciascuna pagina vi è un
  1759. campo "Risposta" che contiene la frase che l'Oggetto dice quando è il suo
  1760. turno di parlare:  questo è il primo campo che il Player guarda quando
  1761. visualizza un dialogo.  Questo implica che se la prima pagina ha il campo
  1762. "Risposta" non vuoto, allora la conversazione viene iniziata dall'Oggetto.
  1763. Quando l'Oggetto ha finito di parlare (ovvero, quando l'utente, durante il
  1764. gioco, ha premuto il bottone del mouse per cancellare il testo che appare
  1765. sulla scena), tutte le frasi contenute nel grosso lister sotto il campo
  1766. "Risposta" vengono visualizzate nello spazio riservato alla console.  Il
  1767. Player attende che l'utente selezioni una frase e la visualizza sulla scena
  1768. (aspettando ancora che l'utente cancelli il testo prima di proseguire).
  1769. Poi il Player esamina il contenuto del campo "Salto":  se non è vuoto, il
  1770. Player cerca una pagina con il nome uguale alla stringa contenuta nel campo
  1771. "Salto".  Alla fine, se questa pagina è stata trovata il processo
  1772. ricomincia da capo:  viene visualizzata prima la risposta, poi le scelte al
  1773. di sotto di essa, e così via.  Un dialogo incontra la propria fine quando
  1774. il campo "Salto" della frase selezionata è vuoto oppure la pagina
  1775. agganciata non viene trovata.
  1776.  
  1777. Per costruire un dialogo dovete prima creare alcune pagine.  Il bottone
  1778. "Nuova" sulla destra crea una nuova pagina e chiede il nome da attribuire a
  1779. tale pagina:  questo nome è l'identificatore che Doopsi usa per indirizzare
  1780. la pagina, quindi dovete fare attenzione a non utilizzare due volte lo
  1781. stesso nome.  Per modificare la risposta, scrivetela semplicemente nel
  1782. gadget stringa "Risposta".  Per aggiungere una nuova frase dovete premere
  1783. il bottone "Agg.":  il testo "Nuova Frase" apparirà sia nel lister, sia nel
  1784. gadget stringa sotto di esso.  Ora potete modificare tale frase scrivendola
  1785. nel gadget stringa "Frase":  il nuovo testo rimpiazzerà quello vecchio nel
  1786. lister.  Nel campo "Salto" va inserito il nome della pagina a cui saltare
  1787. quando la frase corrente viene selezionata durante il gioco:  potete
  1788. modificare tale nome inserendolo a mano nel gadget stringa oppure premendo
  1789. il bottone "Salto"; quest'ultimo apre un lister con tutti i nomi delle
  1790. pagine create fino ad ora:  cliccate sul nome desiderato e poi sul gadget
  1791. "Va Bene".
  1792.  
  1793. Ora descriviamo i rimanenti gadget nella fila in basso.  Il bottone
  1794. "Memorizza" immagazzina il contenuto del campo "Frase" nel lister (è lo
  1795. stesso che premere il tasto Return nel campo "Frase").  Il gadget
  1796. "Seleziona" vi permette di muovervi attraverso le pagine:  quando lo
  1797. premete appare un lister con i nomi delle pagine create fino ad ora, e
  1798. potete selezionare quella da visualizzare.  Il gadget "Rimetti" annulla
  1799. l'ultima modifica apportata al campo "Frase".  Il bottone "Canc" rimuove la
  1800. frase correntemente selezionata.
  1801.  
  1802. I gadget nella colonna a destra hanno i seguenti significati.  Il gadget
  1803. "Nuova" crea una nuova pagina.  Il bottone "Salva" salva tutte le pagine
  1804. create sino ad ora, e il gadget "Carica" carica un insieme di pagine
  1805. salvate con il bottone precedente.  Il gadget "Nome Pag." vi permette di
  1806. cambiare il nome della pagina corrente.  Il bottone "Uccidi Pag." rimuove
  1807. solo la pagina corrente e il bottone "Uccidi Tutto" elimina tutte le
  1808. pagine create.
  1809.  
  1810.  
  1811.  
  1812. I Gadget:
  1813.  
  1814. Iniziamo con i gadget a destra sullo schermo:
  1815.  
  1816. Nuova             Crea una nuova pagina.
  1817.  
  1818. Carica            Carica un insieme di pagine.
  1819.  
  1820. Salva             Salva le pagine create.
  1821.  
  1822. Nome Pag.         Modifica il nome della pagina attuale.
  1823.  
  1824. Uccidi Pag.       Elimina la pagina corrente.
  1825.  
  1826. Uccidi Tutto      Elimina tutte le pagine create.
  1827.  
  1828.  
  1829. Ed ecco i bottoni in basso:
  1830.  
  1831. Agg.              Aggiunge una nuova frase.
  1832.  
  1833. Memorizza         Memorizza la pagina corrente.
  1834.  
  1835. Seleziona         Permette di selezionare una pagina di dialogo.
  1836.  
  1837. Rimetti           Rimette l'ultima frase modificata.
  1838.  
  1839. Canc              Cancella la frase attuale.
  1840.  
  1841.  
  1842. ---------------------------------------------------------------------------
  1843.  
  1844.  
  1845. ***********
  1846. Preferenze.
  1847. ***********
  1848.  
  1849. Doopsi è un programma complesso e flessibile ed alcune delle sue
  1850. caratteristiche possono essere adattate alle esigenze del programmatore.
  1851. In Doopsi, le modifiche possono essere effettuate tramite la finestra di
  1852. Preferences, suddivisa in quattro sezioni, che esamineremo singolarmente.
  1853.  
  1854. Selezione dei Percorsi.
  1855.  
  1856. In questa sezione è possibile scegliere le directory contenenti tutti i
  1857. file di un determinato tipo.  Creando delle avventure complesse, è sempre
  1858. meglio suddividere grafica, suoni e tutto il resto in varie directory.  Con
  1859. questi percorsi, ogni volta che sarà necessario un file requester di un
  1860. determinato tipo (ad esempio per caricare un fondale) la directory verrà
  1861. automaticamente impostata a quella inserita nelle preferenze.  Nel caso non
  1862. si desideri utilizzare alcune delle directory di default, sarà sufficiente
  1863. inserire all'interno del campo una stringa vuota.
  1864.  
  1865. Il secondo gruppo di percorsi di default è dedicato al Player:  essi
  1866. servono al Player per trovare i file che sono indispensabili per iniziare
  1867. il gioco, vale a dire il file contenente la console (default:
  1868. "Doopsi:Data/panel.iff"), il file "player.dat" (default:
  1869. "Doopsi:Data/player.dat") ed infine (opzionale) il catalogo per un
  1870. linguaggio diverso dall'inglese (default:  "Doopsi:Data/player.catalog").
  1871. In questi string gadget occorre quindi inserire, oltre al percorso
  1872. completo, anche il nome dei file.  Questo permette, ad esempio, di
  1873. utilizzare una console diversa per ciascuna avventura.
  1874.  
  1875. L'ultimo string gadget, chiamato "Player", contiene il percorso completo ed
  1876. il nome del programma "DoopsiPlayer":  questo serve all'Editor per trovare
  1877. il Player quando viene premuto il bottone "Prova Gioco" nella Finestra
  1878. Principale.
  1879.  
  1880. A fianco del gadget di stringa contenente il path, c'è un piccolo gadget
  1881. con scritto "R" (ricerca), che aprirà un path requester con il quale sarà
  1882. possibile cercare la directory che desideriamo impostare come default.
  1883.  
  1884. Manipolazione dei Colori.
  1885.  
  1886. In questa sezione è possibile caricare, editare e salvare i colori
  1887. dell'interfaccia dell'editor di Doopsi.  Premendo "Carica" sarà possibile
  1888. caricare i primi quattro colori di una qualsiasi immagine IFF, con "Salva"
  1889. potremo salvare la palette e con "Edita" apparirà un Palette requester con
  1890. il quale sarà possibile modificare direttamente i colori.
  1891.  
  1892. Scelta dei nomi di Default.
  1893.  
  1894. Questa è forse la sezione più importante delle preferenze.  Come dovreste
  1895. sapere, Doopsi utilizza per il personaggio dell'avventura dei nomi di
  1896. default necessari perché il Player utilizzi le animazioni corrette quando
  1897. necessario.  Potete trovare la spiegazione di come questo meccanismo
  1898. funzioni nella sezione "Alcune note su come il Player trova l'Omino" posta
  1899. immediatamente dopo la sezione del manuale realtiva alla Finestra
  1900. Principale.  Seguono i nomi dei campi ed il loro significato:
  1901.  
  1902.  
  1903. NOME         VALORE DEF.  DESCRIZIONE
  1904.  
  1905. Root         Man          E' il nome "base" mediante il quale sono definiti
  1906.                           i nomi delle animazioni dell'Omino.
  1907.  
  1908. Left         L            Questi quattro valori determinano 
  1909. Right        R            le animazioni del personaggio nelle varie 
  1910. Up           U            direzioni. Ad es. "ManU" significa 
  1911. Down         D            "animazione Omino che cammina verso l'alto"
  1912.  
  1913. Talk         Talk         Questa è una specie di "seconda root" ed
  1914.                           è il suffisso che viene aggiunto DIRETTAMENTE
  1915.                           alla Root vera e propria per definire le
  1916.                           animazioni del personaggio mentre parla.  A
  1917.                           questa root verrà poi aggiunto normalmente un
  1918.                           suffisso Left, Right, Up o Down.  Per es.  il
  1919.                           personaggio che parla a sinistra è definito così:
  1920.                           ManTalkL.
  1921.                                    
  1922. Questi nomi, essendo solo "interni" al Player, potevano anche rimanere
  1923. "rigidi" e non essere modificabili, ma abbiamo preferito permetterne la
  1924. modifica, per poter rendere tutto ancora più leggibile.  Infatti, potrete
  1925. modificare questi nomi, assegnando valori più significativi.  Facciamo un
  1926. esempio:
  1927.  
  1928.   Root = Uomo
  1929.   Talk = _che_parla
  1930.   L    = _a_sinistra
  1931.   R    = _a_destra
  1932.  
  1933. Il famigerato ManTalkL diventerà "Uomo_che_parla_a_sinistra", sicuramente
  1934. più elegante.  Ma attenzione, questo è solo un esempio:  i nomi interni
  1935. degli Oggetti in Doopsi possono essere di massimo 30 caratteri.
  1936.  
  1937. Scena di Partenza.
  1938.  
  1939. Con questa ultima parte della finestra di Preferences è possibile definire
  1940. il nome della prima scena che verrà mostrata all'avvio dell'avventura.
  1941.  
  1942. I bottoni USA/CARICA/SALVA/ANNULLA
  1943.  
  1944. I bottoni presenti in fondo alla finestra di Preferences permettono di
  1945. usare le preferenze appena inserite ("USA"), salvarne le preferenze attuali
  1946. ("SALVA"), caricare una configurazione precedentemente salvata ("CARICA") e
  1947. di annullare i nuovi settaggi ("ANNULLA").
  1948.  
  1949.  
  1950. Nota:  le preferenze vengono SEMPRE salvate in un file completo di Doopsi,
  1951. per permettere la gestione di più avventure differenti contemporaneamente
  1952. con settaggi diversi.
  1953.  
  1954.  
  1955. ---------------------------------------------------------------------------
  1956.  
  1957.  
  1958. ********************************
  1959. Appendice A:  Istruzioni Doopsi.
  1960. ********************************
  1961.  
  1962. Nella seguente lista oggetti e scene sono identificati utilizzando il loro
  1963. nome interno, quindi Oggetto rappresenta il nome interno dell'Oggetto
  1964. stesso, e così via.
  1965.  
  1966.  
  1967. AddStatus Oggetto, Valore
  1968.  
  1969. Aggiunge Valore al campo di stato dell'oggetto selezionato.  Il valore
  1970. totale dello stato di un oggetto è compreso fra -32767 e +32768.
  1971.  
  1972.  
  1973. ChangeDescription Oggetto, Testo
  1974.  
  1975. Cambia il nome dell'oggetto in Testo.  Questo nome è quello che appare
  1976. sulla linea di testo della console quando l'oggetto viene selezionato sulla
  1977. scena.
  1978.  
  1979.  
  1980. ChangeScene Scena
  1981.  
  1982. Se Scena è stata trovata questa istruzione esce dalla scena corrente e
  1983. visualizza la nuova scena.
  1984.  
  1985.  
  1986. ChangeShape Oggetto, Immagine
  1987.  
  1988. Cambia l'immagine attuale dell'Oggetto selezionato.  Se l'Oggetto è
  1989. visualizzato sulla scena la nuova immagine verrà disegnata e rimpiazzerà
  1990. quella vecchia.  Se l'oggetto è nell'inventario questo comando modificherà
  1991. l'immagine di inventario (e la ridisegnerà).  Infine, se l'Oggetto non è
  1992. visualizzato questa istruzione modificherà solo il valore dell'immagine
  1993. attuale dell'Oggetto stesso.  Questa istruzione non funziona con gli
  1994. AnimObject o con le Zone Vuote (per ovvi motivi) quando sono disegnate
  1995. sulla scena, ma le loro immagini di inventario potranno comunque essere
  1996. modificate.  Con ChangeShape l'immagine attuale dell'Oggetto è cancellata
  1997. perché la nuova immagine viene ridisegnata immediatamente sopra essa:
  1998. questo implica che le due immagini devono avere le medesime dimensioni.
  1999.  
  2000.  
  2001.  
  2002. ChangeShapeBG Oggetto, Immagine
  2003.  
  2004. Questo comando è simile a ChangeShape, ma prima di disegnare la nuova
  2005. immagine il Player cancella l'immagine attuale dell'Oggetto ridisegnando lo
  2006. sfondo.  Questo elimina la limitazione presente in ChangeShape che la nuova
  2007. immagine debba avere dimesioni uguali o maggiori di quella vecchia.
  2008.  
  2009. ChangeStatus Oggetto, Valore
  2010.  
  2011. Scrive Valore nel campo di stato dell'Oggetto selezionato.  Lo stato può
  2012. essere 0 o 1 per rappresentare una porta chiusa o aperta rispettivamente, e
  2013. così via...  Se l'oggetto è una moneta questo campo può essere usato per
  2014. memorizzare il numero di monete che l'Omino possiede.  Il valore che il
  2015. campo di stato di un oggetto può contenere va da -32767 a +32768.
  2016.  
  2017.  
  2018. Close Oggetto
  2019.  
  2020. Si veda l'istruzione Open.
  2021.  
  2022.  
  2023. ConsoleHide
  2024.  
  2025. Spegne la console.
  2026.  
  2027.  
  2028. ConsoleShow
  2029.  
  2030. Accende la console.
  2031.  
  2032.  
  2033. Drop Oggetto
  2034.  
  2035. Si veda l'istruzione Open.
  2036.  
  2037.  
  2038. Else
  2039.  
  2040. Else viene usato in un gruppo If:  se la condizione è falsa allora il
  2041. Player eseguirà tutte le istruzioni che seguono il comando Else fino al più
  2042. vicino EndIf (o fino alla fine del programma se quest'ultimo non è
  2043. presente).
  2044.  
  2045.  
  2046. EndIf
  2047.  
  2048. Questa istruzione termina un gruppo If.  Potete avere fino a 10 gruppi If
  2049. nidificati.
  2050.  
  2051.  
  2052. EraseInventory Oggetto
  2053.  
  2054. Rimuove l'Oggetto dalla lista dell'inventario e cancella la sua immagine di
  2055. inventario dalla console.
  2056.  
  2057.  
  2058. EraseObject Oggetto
  2059.  
  2060. Rimuove l'Oggetto dalla scena.  Questa istruzione non si applica agli
  2061. AnimObject:  in questo caso l'utente deve utilizzare StopAnim.
  2062.  
  2063.  
  2064. GetInventory Oggetto
  2065.  
  2066. Aggiunge l'Oggetto alla lista dell'inventario e disegna la sua immagine di
  2067. inventario attuale sulla console.  Questa istruzione fallisce se la lista
  2068. dell'inventario è piena, in quanto essa può contenere solo un numero
  2069. limitato di oggetti.
  2070.  
  2071.  
  2072. IfOnScene Oggetto
  2073.  
  2074. Restituisce Vero se l'Oggetto è disegnato sulla scena.
  2075.  
  2076.  
  2077. IfSceneIs Scena
  2078.  
  2079. Restituisce Vero se l'Omino è attualmente nella scena Scena.
  2080.  
  2081.  
  2082. IfStatus Oggetto, Stato
  2083.  
  2084. Restituisce Vero se il campo di stato dell'Oggetto selezionato è uguale a
  2085. Stato.
  2086.  
  2087.  
  2088. IfUsedWith Oggetto
  2089.  
  2090. Restituisce Vero se l'oggetto corrente è usato con Oggetto.  Questo
  2091. significa che avete prima selezionato il bottone Usa e cliccato una volta
  2092. su Oggetto e poi, dopo che il testo "Usa Oggetto con..." è apparso sulla
  2093. console, avete cliccato due volte sull'oggetto corrente:  questo attiva il
  2094. programma Doopsi relativo all'azione Usa dell'oggetto corrente dove
  2095. dovrebbe trovarsi questa istruzione.  Affinché cliccando su Oggetto appaia
  2096. la scritta "con..." ed il Player attenda la selezione di un altro oggetto è
  2097. necessario che Oggetto abbia UseWith come prima istruzione del programma
  2098. relativo all'azione Usa.
  2099.  
  2100.  
  2101. InvToScene Oggetto
  2102.  
  2103. Preleva l'Oggetto selezionato dall'inventario e lo disegna sulla scena alle
  2104. coordinate contenute in Oggetto:  tali coordinate sono inizializzate quando
  2105. l'Oggetto viene posizionato sulla scena mediante l'Editor.  Se l'oggetto è
  2106. un AnimObject l'animazione verrà automaticamente visualizzata.
  2107.  
  2108.  
  2109. InvToSpot Oggetto, Spot
  2110.  
  2111. Uguale a InvToScene, ma l'Oggetto verrà disegnato alle coordinate dello
  2112. Spot.
  2113.  
  2114.  
  2115. Look Oggetto
  2116.  
  2117. Si veda l'istruzione Open.
  2118.  
  2119.  
  2120. ManDirection Estensione
  2121.  
  2122. Forza l'Omino a girarsi nella direzione selezionata:  Estensione è una
  2123. delle quattro estensioni indicanti una direzione che l'utente può
  2124. modificare mediante l'editor di preferenze.
  2125.  
  2126.  
  2127. ManTalkColour Valore
  2128.  
  2129. Con questa istruzione l'utente sceglie il registro colore da usare per il
  2130. testo in tutte le successive istruzioni ShowText o ShowDialog quando
  2131. l'Omino parla.
  2132.  
  2133.  
  2134. MoveMan Spot
  2135.  
  2136. Questa istruzione permette all'utente di forzare l'Omino a muoversi verso
  2137. lo Spot desiderato sulla scena.
  2138.  
  2139.  
  2140. MoveObject Oggetto, Spot
  2141.  
  2142. Muove l'Oggetto dalla sua posizione attuale sulla scena alla posizione
  2143. specificata da Spot.  Durante il movimento un AnimObject verrà sostituito
  2144. all'immagine corrente dell'Oggetto se tale AnimObject è stato
  2145. precedentemente selezionato mediante l'istruzione SetMoveAnim.
  2146.  
  2147.  
  2148. MoveObjectOnPath Oggetto, Spot
  2149.  
  2150. Questo è simile a MoveObject con la differenza che l'Oggetto selezionato si
  2151. muoverà seguendo il percorso della scena corrente e si fermerà al nodo più
  2152. vicino allo Spot selezionato.  Un'altra leggera differenza è che si suppone
  2153. che l'hot-spot dell'oggetto (o, se presente, dell'animazione che lo
  2154. sostituisce) sia posizionato nell'angolo in basso a sinistra
  2155. dell'immagine.
  2156.  
  2157.  
  2158. MoveObjectToObject Oggetto1, Oggetto2
  2159.  
  2160. Questo è simile a MoveObject, e muove Oggetto1 alla posizione specificata
  2161. da Oggetto2.
  2162.  
  2163.  
  2164. MoveObjToObjOnPath Oggetto1, Oggetto2
  2165.  
  2166. Questo è simile a MoveObjectOnPath, e muove Oggetto1 alla posizione
  2167. specificata da Oggetto2.
  2168.  
  2169.  
  2170. MusicPause
  2171.  
  2172. Sospende momentaneamente la musica.  Per farla ripartire basta utilizzare
  2173. un'altra volta questo comando.
  2174.  
  2175.  
  2176. MusicPlay File
  2177.  
  2178. Suona il contenuto del File.  File deve essere un modulo tracker standard.
  2179.  
  2180.  
  2181. MusicStop
  2182.  
  2183. Interrompe la musica.
  2184.  
  2185.  
  2186. ObjTalkColour Valore
  2187.  
  2188. Questo è simile a ManTalkColour, ma vi permette di scegliere il registro
  2189. colore del testo dell'oggetto a cui l'Omino sta parlando durante una
  2190. istruzione ShowDialog.
  2191.  
  2192.  
  2193. Open  Oggetto
  2194. Close Oggetto
  2195. Look  Oggetto
  2196. Take  Oggetto
  2197. Drop  Oggetto
  2198. Push  Oggetto
  2199. Pull  Oggetto
  2200. Talk  Oggetto
  2201. Use   Oggetto
  2202.  
  2203. Queste istruzioni eseguono il codice Doopsi contenuto nella corrispondente
  2204. azione di Oggetto.  Esse sono gestite come sottoprogrammi, e potete
  2205. nidificare fino ad un massimo di 10 sottoprogrammi.
  2206.  
  2207.  
  2208. Pull Oggetto
  2209.  
  2210. Si veda l'istruzione Open.
  2211.  
  2212.  
  2213. Push Oggetto
  2214.  
  2215. Si veda l'istruzione Open.
  2216.  
  2217.  
  2218. PutObject Oggetto, Spot
  2219.  
  2220. Disegna l'Oggetto alla posizione dello Spot.  Oggetto può anche essere una
  2221. Zona Vuota.
  2222.  
  2223.  
  2224. SceneToInv Oggetto
  2225.  
  2226. Preleva l'Oggetto selezionato dalla scena e lo ripone nell'inventario.  Se
  2227. l'oggetto è un AnimObject l'animazione verrà automaticamente fermata.
  2228.  
  2229.  
  2230. SetManName Oggetto
  2231.  
  2232. Questa istruzione serve per cambiare le animazioni dell'Omino:  la radice
  2233. del nome (cioè dopo aver rimosso qualunque estensione) dell'Oggetto è
  2234. utilizzata per costruire i nomi dell'Omino fino a quando SetManName viene
  2235. chiamata nuovamente o è invocata da un nodo del percorso.
  2236.  
  2237.  
  2238. SetMoveAnim AnimObject
  2239.  
  2240. L'AnimObject selezionato verrà usato come animazione per la seguente
  2241. istruzione MoveObject o simili (MoveObjectOnPath, MoveObjectToObject,
  2242. MoveObjToObjOnPath).  Se il nome dell'AnimObject termina con una delle
  2243. quattro estensioni (indicanti le quattro direzioni) allora il Player è
  2244. autorizzato a scegliere la direzione opportuna prima di muovere l'oggetto:
  2245. se tale direzione non è fornita verrà utilizzata l'immagine corrente
  2246. dell'oggetto, e quindi la selezione dell'animazione sarà totalmente
  2247. ignorata.
  2248.  
  2249.  
  2250. SetTalkAnim AnimObject
  2251.  
  2252. Questa istruzione comunica al Player che, quando il prossimo ShowDialog
  2253. verrà eseguito, deve usare AnimObject per mostrare che l'oggetto
  2254. selezionato sta parlando.  Se l'utente termina il nome interno di
  2255. AnimObject mediante una delle quattro estensioni indicanti una direzione
  2256. (tali estensioni possono essere modificate usando l'editor di preferenze),
  2257. allora il Player rimuove questa estensione da tale nome interno e sceglie
  2258. la direzione appropriata (dipendente dalla posizione relativa dell'oggetto
  2259. rispetto all'Omino).  Poi aggancia l'estensione relativa alla direzione
  2260. scelta al nome interno di AnimObject e cerca l'oggetto risultante.  Se
  2261. questo viene trovato l'animazione corrispondente sarà visualizzata quando
  2262. l'oggetto parla.
  2263.  
  2264.  
  2265. ShowAnim AnimObject
  2266.  
  2267. Questa istruzione visualizza l'animazione contenuta in AnimObject.  Tale
  2268. animazione verrà posizionata alle coordinate interne di AnimObject:  queste
  2269. coordinate vengono inizializzate quando l'AnimObject è posizionato sulla
  2270. scena mediante l'Editor (e rimangono memorizzate anche se l'AnimObject
  2271. viene rimosso dalla scena in un secondo tempo).  Il numero di animazioni
  2272. che il Player può visualizzare contemporaneamente è limitato.
  2273.  
  2274.  
  2275. ShowAnimAtSpot AnimObject, Spot
  2276.  
  2277. Visualizza l'animazione contenuta in AnimObject alle coordinate di Spot.
  2278.  
  2279.  
  2280. ShowDialog Dialogo
  2281.  
  2282. Questo comando inizia una conversazione tra l'Omino e l'oggetto
  2283. selezionato.  Dialogo è la prima pagina della conversazione.  Se
  2284. l'animazione che mostra l'Omino che parla viene trovata essa sarà
  2285. visualizzata; potete scegliere un'animazione che mostra l'oggetto che parla
  2286. mediante SetTalkAnim.  I colori dei testi dell'Omino e dell'oggetto vengono
  2287. scelti mediante le istruzioni ManTalkColour e ObjTalkColour
  2288. rispettivamente.
  2289.  
  2290.  
  2291. ShowPicture File
  2292.  
  2293. Nasconde momentaneamente la scena e la console per visualizzare il
  2294. contenuto del File.  File deve essere un'immagine Iff ILBM.  Se l'immagine
  2295. è più grande dell'area dello schermo potete muoverla spostando il mouse
  2296. contro i bordi dello schermo.  Per ritornare allo stato precedente premere
  2297. il tasto sinistro del mouse.
  2298.  
  2299.  
  2300. ShowText Testo
  2301.  
  2302. Visualizza Testo.  La posizione e la suddivisione in linee del testo
  2303. verranno determinate automaticamente mediante la posizione dell'Omino sulla
  2304. scena e la larghezza della scena stessa.  La direzione dell'Omino determina
  2305. quale delle quattro animazioni verrà visualizzata, se presente, per far
  2306. parlare l'Omino; se l'animazione non è presente il Player non si lamenterà
  2307. e si limiterà a lasciare immutato l'Omino.  Il colore del testo può essere
  2308. cambiato utilizzando l'istruzione ManTalkColour.  Per cancellare il testo è
  2309. necessario premere il tasto sinistro del mouse.
  2310.  
  2311.  
  2312. SoundPlay File
  2313.  
  2314. Suona il contenuto del File.  File deve essere un campionamento Iff 8SVX
  2315. standard.
  2316.  
  2317.  
  2318. StopAnim AnimObject
  2319.  
  2320. Ferma l'animazione contenuta in AnimObject e la rimuove dalla scena.
  2321.  
  2322.  
  2323. Take Oggetto
  2324.  
  2325. Si veda l'istruzione Open.
  2326.  
  2327.  
  2328. Talk Oggetto
  2329.  
  2330. Si veda l'istruzione Open.
  2331.  
  2332.  
  2333. Use Oggetto
  2334.  
  2335. Si veda l'istruzione Open.
  2336.  
  2337.  
  2338. UseWith
  2339.  
  2340. Questa istruzione deve essere la prima nel programma dell'azione Usa di un
  2341. oggetto:  essa comunica al Player che l'oggetto corrente deve essere usato
  2342. insieme ad un altro oggetto; dunque il Player visualizza il testo "Usa
  2343. Oggetto con..." e aspetta che l'utente selezioni un altro oggetto.  Si veda
  2344. anche IfUsedWith.
  2345.  
  2346.  
  2347. ---------------------------------------------------------------------------
  2348.  
  2349.  
  2350. *************************
  2351. Appendice B:  La console.
  2352. *************************
  2353.  
  2354. Lo schema della console incluso nel pacchetto di Doopsi mostra le diverse
  2355. zone controllate dal Player:  ci sono i nove bottoni delle azioni sulla
  2356. sinistra, due frecce verticali per far scorrere l'inventario e, fra queste,
  2357. un piccolo bottone usato per accedere all'interfaccia per il disco; la
  2358. parte destra è occupata dall'inventario e, ultimo ma non meno importante,
  2359. il rettangolo all'estremità superiore è la linea di testo dove appariranno
  2360. tutti i messaggi.  A proposito:  ciascun quadratino dell'inventario misura
  2361. 32 * 32 pixel, quindi l'utente deve tener conto di queste dimensioni quando
  2362. progetta le immagini di inventario per i suoi oggetti.  Sotto la console,
  2363. sullo stesso schermo è rappresentata l'interfaccia per il disco:  l'area
  2364. più vasta sulla sinistra è quella in cui comparirà la lista dei file e
  2365. sotto di essa vi è lo spazio dove l'utente inserisce il percorso di ricerca
  2366. dei file stessi; poi vi sono due frecce verticali per scorrere la lista dei
  2367. file e cinque bottoni.
  2368.  
  2369. Lo schermo contenente la console e l'interfaccia disco deve essere in bassa
  2370. risoluzione non interlacciato e l'utente può disegnarci sopra tutto quello
  2371. che desidera, ma deve ricordare di rispettare le dimensioni delle zone
  2372. delimitate.  Si ricordi anche che i quadratini dell'inventario, la linea di
  2373. testo e l'area dedicata alla lista dei file vengono riempite dal Player con
  2374. il colore numero 0.  Un altro suggerimento:  tutte le immagini di
  2375. inventario devono avere la medesima palette, quella della console, in
  2376. quanto appariranno sulla console e quest'ultima rimane fissa per tutta la
  2377. durata del gioco; invece le altre immagini possono avere palette differenti
  2378. poiché è permesso cambiare i colori passando da una scena all'altra.
  2379.  
  2380.  
  2381. L'interfaccia del disco.
  2382.  
  2383. E' come tutti gli altri requester a cui siete abituati:  il percorso di
  2384. ricerca viene inserito nel gadget stringa situato nella parte bassa dello
  2385. schermo e i nomi dei file vengono elencati nell'area sopra di esso.  Per
  2386. caricare un file l'utente deve selezionarne il nome con il taso sinistro
  2387. del mouse e poi cliccare sul bottone Carica alla destra dello schermo.  Per
  2388. salvare un file l'utente deve selezionarne il nome e poi cliccare sul
  2389. bottone Salva:  apparirà un cursore per permettere all'utente di modificare
  2390. il nome del file; quando le eventuali modifiche sono state effettuate basta
  2391. premere Return per salvare.  Per salvare una nuova partita cliccate su
  2392. Salva come prima, senza selezionare alcun nome.
  2393.  
  2394. I nomi che compaiono nel lister ed il percorso di ricerca sono limitati ad
  2395. una lunghezza di 25 caratteri (penso sia abbastanza per la maggior parte
  2396. delle applicazioni).
  2397.  
  2398. I cinque bottoni sulla destra sono denominati, in ordine:  Carica, Salva,
  2399. Gioca, Workbench ed Esci.  I bottoni Carica e Salva sono già stati
  2400. descritti.  Il bottone Gioca permette di ritornare allo schermo della
  2401. console e di continuare il gioco.  Il bottone denominato Workbench attiva
  2402. il multitasking:  il Player scompare e l'utente può tornare alla partita
  2403. interrotta selezionando la voce Doopsi-GS nel menu Tools del Workbench.  Il
  2404. bottone Esci..., lascio a voi immaginare lo scopo di quello.
  2405.  
  2406.  
  2407. ---------------------------------------------------------------------------
  2408.  
  2409.  
  2410. ****************************
  2411. Appendice C:  Dentro Doopsi.
  2412. ****************************
  2413.  
  2414. Nel seguito userò il termine Doopsi quando descriverò come funzionano
  2415. alcune parti comuni all'Editor ed al Player.
  2416.  
  2417.  
  2418. Struttura degli oggetti di Doopsi.
  2419.  
  2420. Per capire come Doopsi agisce e per ottenere il meglio da lui dovete
  2421. conoscere almeno l'essenziale della struttura degli oggetti Doopsi.
  2422.  
  2423. Iniziamo con una Scena:
  2424.  
  2425.    nome interno
  2426.  
  2427.    nome file dello sfondo
  2428.  
  2429.    lista di Oggetti agganciati (nomi interni)
  2430.  
  2431. Il nome interno è un nome privato che l'utente attribuisce alla Scena ed è
  2432. usato da Doopsi per riconoscere la Scena stessa.  Il nome dello sfondo è il
  2433. nome (completo di percorso) del file Iff contenente l'immagine da
  2434. visualizzare.  Segue poi una lista dei nomi interni degli Oggetti che
  2435. devono essere posizionati sulla Scena.
  2436.  
  2437. Veniamo ora ad un Oggetto. Vi sono tre tipi di oggetti, ma tutti
  2438. condividono la medesima struttura:
  2439.  
  2440. a) gli Oggetti tout-court sono semplicemente oggetti nel senso usuale del
  2441. termine e le loro immagini verranno disegnate sulla scena.
  2442.  
  2443. b) gli AnimObject contengono un'animazione che verrà visualizzata sulla
  2444. scena.
  2445.  
  2446. c) le Zone Vuote sono costituite da un rettangolo (che non sarà disegnato)
  2447. senza immagini.
  2448.  
  2449. Segue la struttura generale di un Oggetto:
  2450.  
  2451.    nome
  2452.  
  2453.    nome interno
  2454.  
  2455.    coordinata X
  2456.  
  2457.    coordinata Y
  2458.  
  2459.    Larghezza
  2460.  
  2461.    Altezza
  2462.  
  2463.    stato
  2464.  
  2465.    lista di immagini
  2466.  
  2467.    nove programmi di azione
  2468.  
  2469. Il nome è ciò che appare sulla linea di testo del Player quando il
  2470. puntatore è sull'oggetto.  Il nome interno è un nome privato (possibilmente
  2471. unico) che l'utente assegna all'oggetto ed è usato da Doopsi per
  2472. riconoscere l'oggetto stesso:  se l'utente utilizza più volte lo stesso
  2473. nome interno l'Editor non si lamenta, ma potreste ottenere risultati
  2474. imprevedibili (di solito Doopsi si ferma al primo oggetto che abbia il nome
  2475. interno richiesto).  Le coordinate X e Y specificano la posizione in cui
  2476. disegnare l'oggetto sullo schermo.  Larghezza ed Altezza sono le
  2477. dimensioni dell'oggetto.  Lo stato è un valore intero con nessun
  2478. significato particolare:  può essere usato per memorizzare lo stato
  2479. Acceso-Spento di una lampadina, o lo stato Aperto-Chiuso di una porta, o il
  2480. numero di monete che l'Omino possiede, e così via...  Segue poi una lista
  2481. di tutte le immagini (nome del file completo di percorso del file Iff
  2482. contenente l'immagine) che l'utente ha agganciato all'Oggetto.  Infine vi
  2483. sono nove programmi (contenenti del codice Doopsi), uno per ciascun bottone
  2484. della console del Player.
  2485.  
  2486. Un AnimObject differisce dalla precedente descrizione per il fatto che
  2487. possiede anche una stringa di interi che specifica la sequenza in cui le
  2488. immagini verranno visualizzate.  Larghezza ed Altezza conterranno la
  2489. massima larghezza ed altezza rispettivamente di tutte le immagini
  2490. selezionate per l'animazione.
  2491.  
  2492. Una Zona Vuota differisce per il fatto che non verrà disegnata sulla scena,
  2493. ma la sua posizione sarà comunque rivelata da Doopsi.  La lista di
  2494. immagini, però, non sarà necessariamente vuota in quanto l'utente potrebbe
  2495. aver bisogno, ad esempio, di riporre questo oggetto nell'inventario (e
  2496. quindi necessita di un'immagine di inventario), e così via.
  2497.  
  2498.  
  2499. ---------------------------------------------------------------------------
  2500.  
  2501.  
  2502. **********
  2503. Il Player.
  2504. **********
  2505.  
  2506. La sequenza di avviamento.
  2507.  
  2508. Quando lanciate il Player, esso cerca prima di tutto il file principale di
  2509. Doopsi e, da questo momento in poi, tutte le azioni che intraprende sono
  2510. determinate dai dati che trova in tale file.  Dal file principale ricava il
  2511. percorso dove cercare la "console" (la parte bassa dello schermo dove
  2512. appaiono i bottoni e l'inventario), contenuta nel file "panel.iff", e il
  2513. file "player.dat".  Se non trova uno qualunque dei pezzi che ho appena
  2514. elencato si lamenta ed esce.
  2515.  
  2516. Supponendo che abbia svolto con successo i precedenti passi, il Player
  2517. cerca ora nel file Doopsi (il file principale che contiene tutta la
  2518. struttura del gioco) le animazioni del protagonista:  devono esserci
  2519. quattro animazioni, una per ciascuna direzione, con i nomi di default che
  2520. l'utente ha scelto.  Poiché questi dati sono vitali (come fate a giocare se
  2521. non vedete dove siete?) il Player si ferma ed esce se non ha trovato tutto
  2522. quello che stava cercando.  Questo significa che esso deve trovare prima di
  2523. tutto i quattro Oggetti che contengono tali animazioni e poi deve trovare
  2524. anche tutte le immagini necessarie.  A proposito, se l'utente fornisce
  2525. anche le animazioni per far parlare il protagonista esse verranno caricate:
  2526. in questo caso non è necessario fornire quattro animazioni se l'utente non
  2527. lo ritiene necessario poiché tali animazioni vengono utilizzate solo se
  2528. presenti.  Ma ricordate, se l'utente chiede al Player di usare
  2529. un'animazione questa animazione deve essere completa, vale a dire che il
  2530. Player deve essere in grado di trovare tutte le immagini necessarie.
  2531. Questa è una regola generale.
  2532.  
  2533. Ed ora veniamo al passo successivo:  fino ad ora il Player è stato in grado
  2534. di visualizzare la console, ma la metà superiore dello schermo è ancora
  2535. terribilmente nera.  Allora esso cerca nel file Doopsi la scena che avete
  2536. scelto come prima scena usando l'editor di Preferenze:  se l'utente si è
  2537. dimenticato di includere almeno una scena con tale nome allora il Player
  2538. non ha nient'altro da fare, perché non sa da quale scena iniziare il gioco,
  2539. ed esce ("ancora!" potreste esclamare, ma non penso che questo
  2540. comportamento sia dovuto a permalosità).  Ovviamente esce anche se la scena
  2541. è stata trovata ma non è presente il file Iff che contiene lo sfondo.
  2542.  
  2543. D'ora in poi il Player si lamenterà soltanto, senza uscire, se non troverà
  2544. qualcosa.  Errori comuni sono "Oggetto non trovato", se l'oggetto che
  2545. l'utente richiede non è nella lista, o "File non trovato" se non trova il
  2546. file contenente un'immagine o uno sfondo, ecc...  In questi casi non
  2547. succede nulla ed il gioco continua indisturbato.  I messaggi di errore
  2548. vengono visualizzati sulla console, nella stessa linea in cui appare la
  2549. scritta "Vai verso"; per eliminare il messaggio e ritornare al gioco
  2550. l'utente deve premere il tasto destro del mouse.
  2551.  
  2552. Se una scena è stata caricata con successo lo sfondo verrà visualizzato e
  2553. tutti gli oggetti in essa contenuti saranno disegnati sullo schermo:  gli
  2554. AnimObject sono automaticamente riconosciuti ed animati.  Supponendo che
  2555. sappiate già (dal manuale dell'Editor) cos'è un percorso Doopsi, vi dico
  2556. che il Player cerca prima un nodo nel percorso della scena corrente con il
  2557. nome uguale a quello della scena da cui proviene, poi, se questo fallisce,
  2558. cerca un nodo che ha lo stesso nome della scena corrente; infine disegna
  2559. l'Omino (che guarda l'utente) vicino al nodo trovato.
  2560.  
  2561. C'è anche qualcosa di leggermente tecnico che dovete sapere a proposito dei
  2562. nodi:  questi vi permettono di fornire una animazione diversa da quella di
  2563. default per l'Omino e di decidere dove cambiare scena; inoltre il percorso
  2564. della scena può essere influenzato da condizioni contenute nei suoi nodi.
  2565. Il Player legge il nome delle animazioni "custom", le condizioni ed i cambi
  2566. di scena da un nodo quando l'Omino ha i piedi sopra quel nodo:
  2567. l'animazione custom viene visualizzata solo quando l'Omino cammina dal nodo
  2568. attuale a quello successivo (così, se l'Omino si ferma sul nodo attuale voi
  2569. non potete vedere tale animazione e dovete fornire un fotogramma di riposo
  2570. all'animazione precedente), ma le condizioni e i cambi di scena sono letti
  2571. ed eseguiti immediatamente quando l'Omino arriva sul noto attuale.  Per
  2572. riassumere:  le animazioni custom di un nodo vengono eseguite quando
  2573. l'Omino si allontana da quel nodo, ma le condizioni e i cambi di scena
  2574. vengono eseguiti quando l'Omino arriva a quel nodo.
  2575.  
  2576. Alla fine il gioco inizia e voi diventate i protagonisti.
  2577.  
  2578.  
  2579. Errori.
  2580.  
  2581. Segue una breve descrizioni dei possibili errori.  I messaggi di errore
  2582. compaiono nella riga di testo e vengono cancellati premendo il tasto destro
  2583. del mouse.  Se l'errore è del tipo "... non trovato ..." il Player stampa
  2584. anche il nome dell'oggetto (o del file, ecc.) che non ha trovato.
  2585.  
  2586. Oggetto non trovato:    l'oggetto non è nella lista principale.
  2587. Scena non trovata:      la scena che avete richiesto non è nella lista.
  2588. File non trovato:       non penso ci sia bisogno di spiegazioni per
  2589.                         questo.
  2590. Spot non trovato:       l'utente ha richiesto uno spot inesistente.
  2591. Inventario pieno:       la lista dell'inventario è capiente ma limitata,
  2592.                         quindi se l'utente vi ripone troppi oggetti essa
  2593.                         può traboccare.
  2594. Niente spazio per l'animazione:  il numero di AnimObject che il Player può
  2595.                                  gestire contemporaneamente è limitato.
  2596. Dialogo non trovato:    l'utente ha richiesto una pagina di dialogo che non
  2597.                         esiste.
  2598. Directory non trovata:  questo messaggio compare nel file lister: l'utente
  2599.                         ha specificato un percorso inesistente.
  2600. Niente spazio per l'oggetto:  il numero di oggetti che una scena può
  2601.                               contenere è limitato.
  2602. Profondità eccessiva:   l'utente ha tentato di disegnare sulla scena un
  2603.                         oggetto con profondità maggiore di quella della
  2604.                         scena stessa.
  2605. EndIf senza If:         in un programma Doopsi vi è un'istruzione EndIf
  2606.                         senza il corrispondente comando If.
  2607. File Iff non valido:    dovete fornire un file Iff standard quando
  2608.                         esplicitamente richiesto, ad es.: nelle istruzioni
  2609.                         ShowPicture e SoundPlay.
  2610. Stack pieno:            si possono nidificare fino a 10 sottoprogrammi: se
  2611.                         ne aggiungete uno di troppo lo stack si esaurisce.
  2612.  
  2613.  
  2614. ---------------------------------------------------------------------------
  2615.  
  2616.  
  2617. *****************
  2618. Limiti di Doopsi.
  2619. *****************
  2620.  
  2621. Qui sono riportate le limitazioni attuali di Doopsi:  le diciture
  2622. "Shareware" e "Special" indicano le limitazioni per le due versioni
  2623. dimostrative.
  2624.  
  2625.  
  2626. Editor:
  2627.  
  2628. Tipo                    numero Max
  2629. ~~~~                    ~~~~~~~~~~
  2630. scene                   200         (Shareware: 3;  Special: 5)
  2631.  
  2632. oggetti                 500         (Shareware: 30; Special: 40)
  2633.  
  2634. pagine di dialogo       100         (Shareware: 5;  Special: 8)
  2635.  
  2636. linee per pagina di     12          (Shareware: 3;  Special: 4)
  2637.  dialogo
  2638.  
  2639. immagini per oggetto    15
  2640.  
  2641. oggetti sulla scena     20
  2642.  contemporaneamente
  2643.  
  2644. lunghezza nomi interni  30
  2645.  
  2646.  
  2647.  
  2648. Player: gli stessi dell'Editor più
  2649.  
  2650. Tipo                    numero Max
  2651. ~~~~                    ~~~~~~~~~~
  2652. animobject sulla scena  10
  2653.  contemporaneamente
  2654.  
  2655. oggetti in inventario   500         (Shareware: 30; Special: 40)
  2656.  
  2657. sottoprogrammi          10
  2658.  nidificati
  2659.  
  2660. gruppi If nidificati    10
  2661.